我有一个django网站,后面是一个gunicorn服务器。以下是django的日志设置 -
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'formatters': {
'verbose': {
'format': '[%(asctime)s][%(levelname)s] %(message)s',
},
},
'handlers': {
'file': {
'level': os.environ['DJANGO_LOGLEVEL'],
'class': 'logging.FileHandler',
'filename': '/mnt/storage/logs/django.log',
'formatter': 'verbose',
},
},
'loggers': {
'django': {
'handlers': ['file'],
'level': os.environ['DJANGO_LOGLEVEL'],
'propagate': True,
},
},
}
这是启动gunicorn服务器的命令 -
gunicorn training_service.wsgi -b 0.0.0.0:8000 -w 4 --access-logfile /mnt/storage/logs/access.log --log-file /mnt/storage/logs/gunicorn.log --log-level $GUNICORN_LOGLEVEL
现在,我的理解是两个日志框架应该完全相互独立。但是,当我通过调用manage.py runserver
启动django站点时,预计将从django设置进行日志记录工作。
但是当我使用gunicorn命令启动相同的东西时,日志格式和django的调试日志都会消失。我不确定这里有什么问题,因为disable_existing_loggers
也被设置为false。而且我不知道gunicorn中是否有任何设置会影响django的日志功能。
唯一的区别是当我使用gunicorn运行时,Debug被设置为False。
我有同样的问题,在我的views.py中,我有以下几行
import logging
logger = logging.getLogger("logger_name")
我打印了记录器.__ dict__,结果记录器已禁用=真所以,在进行任何信息/调试/错误等之前,我将其更改为False。
logger.disabled = False
然后它就像一个魅力