Django日志记录配置要求在处理程序上指定筛选器

Django日志记录配置要求在处理程序上指定筛选器,django,logging,Django,Logging,我正在为Django项目配置日志记录,以下是设置: LOGGING = { 'version': 1, 'disable_existing_loggers': False, 'handlers': { 'mail_admins': { 'level': 'ERROR', # 'filters': [], 'class': 'django.utils.log.AdminEmailHand

我正在为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"
注释掉“过滤器”:[]后,控制台不会记录任何错误。取消对该行的注释可以使一切按预期进行

让我相信日志记录在处理程序上是可选的


这里发生了什么事?

看来你错过了记录者词典中的关键部分。我正在使用下面的词典,它工作正常

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,
    }
}
}

你在说什么键?在我的dict中,键是django.request…为什么你的记录器dict没有键?因为我想要一个“全面”记录器,也就是说,所有错误消息都应该通过电子邮件发送给我,而不仅仅是django.request或更深入的消息。