运行一个名为的模块log.py
会创建一个文件,在该文件my_file.log
中记录脚本运行的时间。在我的本地项目中运行log.py
(过度)写入日志文件非常好,但由于某种原因,在我在 heroku 中的生产部署上运行它不会写入my_file.log
. Thelog.py
还做了一些其他的事情,我可以看出这log.py
确实在 Heroku 中执行。只是没有写入的日志。
首先我认为这可能是一个权限问题,但检查ls -l
给
drwx------ 3 my_app
-rw------- 1 my_file.log
以下是我的项目结构:
.
├── my_project
│ ├── my_app
│ │ ├── __init__.py
│ │ ├── models.py
│ │ ├── tests.py
│ │ ├── views.py
│ │ ├── my_file.log
│ │ └── management
│ │ ├── __init__.py
│ │ └── commands
│ │ ├── __init__.py
│ │ └── log.py
│ ├── __init__.py
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
├── manage.py
└── requirements.txt
它不应该与用作自定义 Django 命令的代码有任何关系,因为在我的开发版本中,日志文件每次都会被覆盖。
这是log.py
负责记录到的片段my_file.log
:
log_lc = os.path.join(os.path.dirname(os.path.abspath(__file__)),
os.path.pardir, os.path.pardir, "my_file.log")
logging.basicConfig(filename=log_lc,level=logging.INFO,
format='%(asctime)s %(message)s', datefmt='%m/%d/%Y %I:%M:%S %p',
filemode="w")
logging.info("You just ran my_file.log")