使用 Gunicorn 时禁用 Django 记录器
Django logger disabled when using Gunicorn
我正在尝试将 Django 日志记录与 gunicorn 结合使用。我可以将它与 Django 开发服务器一起使用,但是当我与 gunicorn 一起使用时,日志不会写入文件或控制台。
这是我的日志记录配置(精简):
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'formatters': {
'verbose': {
'format': '[%(asctime)s] %(levelname)s [%(filename)s:%(lineno)s] %(message)s'
},
'simple': {
'format': '%(message)s'
}
},
'handlers': {
'console': {
'class': 'logging.StreamHandler',
},
'docs_file_handler': {
'class': 'logging.FileHandler',
'filename': os.path.join(LOGS_DIR, 'docs.log'),
'level': 'DEBUG',
'formatter': 'simple'
}
},
'loggers': {
'docs.views': {
'handlers': ['docs_file_handler', 'console'],
'propagate': True,
'level': 'DEBUG',
},
},
}
当我打印 'logger.disabled' 时,结果为真。
获取记录器:
logger = logging.getLogger(__name__)
print(logger.handlers) # Returns [<FileHandler /var/efs/docs.log (DEBUG)>]
print(logger.disabled) # Returns True
# When I manually set, logger starts working
logger.disabled = False
Gunicorn 命令:
gunicorn my_project.wsgi --enable-stdio-inheritance --log-level "info" --error-logfile "/var/efs/gunicorn.error.log" --access-logfile "/var/efs/gunicorn.access.log" --reload
我无法让日志与 Gunicorn 一起使用。
我找到了解决方案,在我的一个模块中,我明确指定了一个记录器 'disable_existing_loggers' 为 True。
我正在尝试将 Django 日志记录与 gunicorn 结合使用。我可以将它与 Django 开发服务器一起使用,但是当我与 gunicorn 一起使用时,日志不会写入文件或控制台。
这是我的日志记录配置(精简):
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'formatters': {
'verbose': {
'format': '[%(asctime)s] %(levelname)s [%(filename)s:%(lineno)s] %(message)s'
},
'simple': {
'format': '%(message)s'
}
},
'handlers': {
'console': {
'class': 'logging.StreamHandler',
},
'docs_file_handler': {
'class': 'logging.FileHandler',
'filename': os.path.join(LOGS_DIR, 'docs.log'),
'level': 'DEBUG',
'formatter': 'simple'
}
},
'loggers': {
'docs.views': {
'handlers': ['docs_file_handler', 'console'],
'propagate': True,
'level': 'DEBUG',
},
},
}
当我打印 'logger.disabled' 时,结果为真。
获取记录器:
logger = logging.getLogger(__name__)
print(logger.handlers) # Returns [<FileHandler /var/efs/docs.log (DEBUG)>]
print(logger.disabled) # Returns True
# When I manually set, logger starts working
logger.disabled = False
Gunicorn 命令:
gunicorn my_project.wsgi --enable-stdio-inheritance --log-level "info" --error-logfile "/var/efs/gunicorn.error.log" --access-logfile "/var/efs/gunicorn.access.log" --reload
我无法让日志与 Gunicorn 一起使用。
我找到了解决方案,在我的一个模块中,我明确指定了一个记录器 'disable_existing_loggers' 为 True。