我有一个Django网站,位于gunicorn服务器后面。 这是django的日志记录设置-
logging:
file: logs/test.txt
pattern:
file: "%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n"
level:
es:
test:
hos:
testsecond:
rest:
resources: info
exceptions: error
这是启动gunicorn服务器的命令-
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 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
启动django网站时,django设置中的日志记录工作是可以预期的。
但是当我使用gunicorn命令启动相同的东西时,日志格式和来自django的调试日志都消失了。我不确定这里有什么问题,因为manage.py runserver
也设置为false。而且我不知道gunicorn中是否有任何设置会影响Django的日志记录功能。
唯一的区别是,当我使用gunicorn运行时,Debug设置为False。
答案 0 :(得分:0)
在我的views.py中,我遇到了同样的问题
import logging
logger = logging.getLogger("logger_name")
我打印了logger .__ dict__,结果表明logger的Disabled = True 因此,在进行任何信息/调试/错误等操作之前,我将其更改为False。
logger.disabled = False
然后它就像一个魅力