Django自定义日志配置无法生效问题求助
Django自定义日志配置无法生效问题求助
大家好,我遇到了一个Django日志配置的困扰,想请各位帮忙排查一下:
我在settings.py里添加了自定义的日志配置,但它完全不起作用——不会记录错误、警告等日志信息。不过Django自带的默认日志功能是正常工作的,我已经把settings里的debug设为True,而且手动创建了logs文件夹。
我的LOGGING配置代码如下:
LOGGING = { 'version': 1, 'disable_existing_loggers': False, 'formatters': { 'file_logging': { 'format': '{levelname} / {levelno} - {asctime} --- {pathname} in {lineno} --- {process:d} {thread:d} -- {message}', 'style': '{' }, 'email_logging': { 'format': '{levelname} at {asctime} --- {pathname} in {lineno} -- {message}', 'style': '{' }, }, 'filters': { 'debug_true_required': { '()': 'django.utils.log.RequireDebugTrue' } }, 'handlers': { 'full_handler': { 'level': 'INFO', 'class': 'logging.FileHandler', 'filename': 'logs/full.log', 'formatter': 'file_logging', }, 'critical_handler': { 'level': 'CRITICAL', 'class': 'logging.FileHandler', 'filename': 'logs/critical.log', 'formatter': 'file_logging', }, 'error_handler': { 'level': 'ERROR', 'filters': ['debug_true_required',], 'class': 'logging.FileHandler', 'filename': 'logs/error.log', 'formatter': 'file_logging', }, 'critical_email_handler': { 'level': 'CRITICAL', 'class': 'django.utils.log.AdminEmailHandler', 'formatter': 'email_logging', }, 'error_email_handler': { 'level': 'ERROR', 'filters': ['debug_true_required',], 'class': 'django.utils.log.AdminEmailHandler', 'formatter': 'email_logging', }, }, 'loggers': { 'file_logger': { 'handlers': ['full_handler', 'critical_handler', 'error_handler'], 'level': 'INFO', 'propagate': True }, 'email_logger': { 'handlers': ['critical_email_handler', 'error_email_handler'], 'level': 'ERROR', 'propagate': True }, } }
我已经尝试过这些方法,但都没解决问题:
- 重新创建了logs文件夹
- 把
propagate的值从False改成True
不过奇怪的是,我手动用下面这段代码调用日志的时候,是完全正常的,日志能正确保存到对应的文件里:
logger = logging.getLogger('file_logger') logger.info("This is a test log message.") logger = logging.getLogger('email_logger') logger.critical("This is a test critical message.")
有没有朋友知道问题出在哪呀?麻烦帮忙指点一下,谢谢!
备注:内容来源于stack exchange,提问作者Matin Abedini
相关产品推荐
相关产品推荐

