我正在尝试在HTTP 500错误发生时启用电子邮件警报。一切正常,除了在Authentication credentials were not provided
级别记录ERROR
(HTTP 401)错误之外,对于电子邮件警报来说,这太冗长了。
这是电子邮件内容(此处省略了Django设置):
在/
报告[35mb'{“ detail”:“未提供身份验证凭据。”}'[0m
请求方法:GET
请求 网址:https://myapi.org/dev/
Django版本:2.0.2
Python可执行文件:/var/lang/bin/python3.6
Python版本:3.6.1
此外,我正在使用django-request-logging
模块来打印请求的内容。
这是我的日志记录配置:
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'formatters': {
'simple': {
'format': '%(levelname)s %(message)s'
},
},
'handlers': {
'console': {
'class': 'logging.StreamHandler',
},
'mail_admins': {
'level': 'ERROR',
'class': 'django.utils.log.AdminEmailHandler',
'email_backend': 'django.core.mail.backends.smtp.EmailBackend',
'include_html': True,
'filters': [],
'formatter': 'simple'
},
},
'loggers': {
'django.request': {
'handlers': ['console', 'mail_admins'],
'level': 'DEBUG',
'propagate': False,
},
},
}
您知道如何从mail_admins
处理程序中过滤HTTP 401吗?
答案 0 :(得分:2)
从documentation到Deleter
:
如果HTTP状态码介于400-599之间,则URI记录为ERROR级别,否则记录为INFO级别。
请参见
django-request-logger
设置以覆盖此设置。
该设置的文档说明了如何更改日志级别:
默认情况下,介于
REQUEST_LOGGING_HTTP_4XX_LOG_LEVEL
级别的HTTP状态代码介于400-499之间。您可以设置ERROR
(等等)来覆盖它。