gpt4 book ai didi

python - 为什么 Django 日志不能与 Gunicorn 一起使用?

转载 作者:行者123 更新时间:2023-12-04 11:48:00 28 4
gpt4 key购买 nike

我有一个 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")

我打印了logger.__dict__,结果发现logger有Disabled=True
因此,在执行任何信息/调试/错误等之前,我将其更改为 False。
logger.disabled = False

然后它就像一个魅力

关于python - 为什么 Django 日志不能与 Gunicorn 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54944287/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com