DRF:以错误级别记录的HTTP 401。如何降低日志记录级别?

时间:2018-09-04 22:58:36

标签: python django logging django-rest-framework

我正在尝试在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吗?

1 个答案:

答案 0 :(得分:2)

documentationDeleter

  

如果HTTP状态码介于400-599之间,则URI记录为ERROR级别,否则记录为INFO级别。

     

请参见django-request-logger设置以覆盖此设置。

该设置的文档说明了如何更改日志级别:

  

默认情况下,介于REQUEST_LOGGING_HTTP_4XX_LOG_LEVEL级别的HTTP状态代码介于400-499之间。您可以设置ERROR(等等)来覆盖它。