我的 Django Logger 在我的本地计算机上工作正常,但当我将其部署到服务器时无法工作。
- 本地:OS X 10.9.5、Python 2.7.5、Django 1.6.2
- 服务器:Ubuntu 12.04、Apache 2.2.22、mod_wsgi 版本:3.3-4ubuntu0.1、Python 2.7.3、Django 1.6
在我的本地设置中,我运行python manage.pysyncdb
,这会创建survey.log文件,然后我使用tail -f Survey.log
跟踪该文件,这样我就可以查看创建时的错误消息。
在我的服务器上,我运行python manage.pysyncdb
,这会创建survey.log文件,然后我使用tail -f Survey.log
跟踪该文件。但是,我看不到任何调试消息,并且当我使用 nano
检查文件时,它是空的。
为什么在我的生产环境中没有将日志数据记录到 survey.log
中?我错过了什么?
views.py
import logging
logger = logging.getLogger(__name__)
logger.debug('This is your images list in 7: %s', images)
settings.py
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'filters': {
'require_debug_false': {
'()': 'django.utils.log.RequireDebugFalse'
}
},
'handlers': {
'mail_admins': {
'level': 'ERROR',
'filters': ['require_debug_false'],
'class': 'django.utils.log.AdminEmailHandler'
},
'applogfile': {
'level':'DEBUG',
'class':'logging.handlers.RotatingFileHandler',
#'filename': os.path.join(DJANGO_ROOT, 'survey.log'),
'filename': 'survey.log',
'maxBytes': 1024*1024*15, # 15MB
'backupCount': 10,
}
},
'loggers': {
'django.request': {
'handlers': ['mail_admins'],
'level': 'ERROR',
'propagate': True,
},
'survey': {
'handlers': ['applogfile',],
'level': 'DEBUG',
},
}
}
<小时/>
编辑
我现在发现我的 Django 错误日志正在写入我的 Apache 错误日志。这正常吗?
正在运行
sudo tail /var/log/apache2/error.log
为我提供了我应该在上面的 Django 错误日志文件中获得的预期打印输出。例如
[15/Dec/2014 21:36:07] DEBUG [survey:190] This is your images list in 7: ['P3D3.jpg', 'P1D1.jpg', 'P5D5.jpg']
最佳答案
您没有在views.py中使用正确的记录器。试试这个:
import logging
logger = logging.getLogger('survey')
logger.debug('This is a debug message.')
您获得的记录器必须与LOGGING
中定义的记录器匹配。
关于部署在 Ubuntu/Apache 服务器上时,Django 日志记录不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27393399/