Django日志记录配置需要在处理程序上指定过滤器

时间:2012-05-28 05:06:10

标签: django logging

我正在为我的Django项目配置日志记录,这里是设置:

LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'handlers': {
        'mail_admins': {
            'level': 'ERROR',
            # 'filters': [],
            'class': 'django.utils.log.AdminEmailHandler'
        }
    },
    'loggers': {
        '': {
            'handlers': ['mail_admins'],
            'level': 'ERROR',
            'propagate': True,
        },
    }
}

EMAIL_BACKEND = "django.core.mail.backends.console.EmailBackend"

注释掉'filters': []后,控制台不会记录任何错误。取消注释该行会使一切按预期工作。

Python's logging.config docs会让我相信logging在处理程序上是可选的。

这里发生了什么?

1 个答案:

答案 0 :(得分:0)

似乎你错过了记录器词典中的密钥。我正在使用以下字典及其工作正常。

LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'handlers': {
    'mail_admins': {
        'level': 'ERROR',
        'class': 'django.utils.log.AdminEmailHandler',
    }
},
'loggers': {
    'django.request': {
        'handlers': ['mail_admins'],
        'level': 'ERROR',
        'propagate': True,
    }
}
}