簡體   English   中英

為什么Django日志記錄不能與Gunicorn一起使用?

[英]Why is Django logging not working with Gunicorn?

我有一個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

然后它就像一個魅力

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM