You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.13 18:58:04