【发布时间】:2014-03-10 05:30:21
【问题描述】:
我在我的 Django 项目中设置了日志记录。它在本地开发中工作,但在生产中造成麻烦。 settings.py位如下:
import os
PROJECT_PATH = os.path.abspath(os.path.dirname(__name__))
. . .
'handlers': {
'log_file': {
'level': 'INFO',
'class': 'logging.handlers.RotatingFileHandler',
'filename': os.path.join(PROJECT_PATH, 'logs/django.log'),
'maxBytes': '16777216',
'formatter': 'verbose'
},
. . .
我在/var/log/apache2/error.log 中不断收到此错误:
ValueError: Unable to configure handler 'log_file': [Errno 2] No such file or directory: '/logs/django.log'
我已经在 Django shell 中通过运行代码并手动设置 PROJECT_PATH 对此进行了测试,它似乎返回了正确的路径。另外,我已经检查并检查了日志文件的权限。虽然没有必要,但我将其更改为777 只是为了测试。还是没有运气。
当生产日志为空时,我的本地日志填满了我所期望的所有内容。
考虑到这一点,我想这个日志位置可能不是最好的,但如果它在生产中工作,至少我会知道......然后,我可以改变位置。
我错过了什么?
【问题讨论】:
-
路径
'/logs/django.log'是否有效且用户可写? -
Apache 用户为
www-data,所有权为root:www-data,权限设置为775,目前。但我已经测试了不同的所有权和777权限,如原始问题所示。