[英]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.