为什么Django登录不与Gunicorn合作?

问题描述 投票:0回答:1

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

python django gunicorn
1个回答
0
投票

我有同样的问题,在我的views.py中,我有以下几行

import logging
logger = logging.getLogger("logger_name")

我打印了记录器.__ dict__,结果记录器已禁用=真所以,在进行任何信息/调试/错误等之前,我将其更改为False。

logger.disabled = False

然后它就像一个魅力

© www.soinside.com 2019 - 2024. All rights reserved.