0

我正在为我的 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 的 logging.config 文档会让我相信这logging在处理程序上是可选的。

这里发生了什么?

4

1 回答 1

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,
    }
}
}
于 2012-05-28T08:36:26.693 回答