DRF: HTTP 401 зарегистрирован на уровне ОШИБКИ. Как снизить уровень регистрации? - PullRequest
0 голосов
/ 05 сентября 2018

Я пытаюсь включить оповещения по электронной почте, когда происходит ошибка HTTP 500. Все работает нормально, за исключением того, что ошибка Authentication credentials were not provided (HTTP 401) регистрируется на уровне ERROR, что является слишком многословным для уведомлений по электронной почте.

Вот содержимое электронной почты (настройки Django здесь опущены):

Отчет в /

[35mb '{"detail": "Учетные данные для аутентификации не предоставлены."}' [0m

Метод запроса: GET

Запрос URL: 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,
        },
    },
}

Есть идеи, как я могу отфильтровать HTTP 401 из обработчика mail_admins?

1 Ответ

0 голосов
/ 05 сентября 2018

Из документации для django-request-logger:

Если код состояния HTTP находится в диапазоне от 400 до 599, URI регистрируются на уровне ОШИБКИ, в противном случае они регистрируются на уровне INFO.

См. REQUEST_LOGGING_HTTP_4XX_LOG_LEVEL параметр для отмены этого.

И документация для этого параметра объясняет, как изменить уровень журнала:

По умолчанию коды состояния HTTP от 400 до 499 регистрируются на уровне ERROR. Вы можете установить REQUEST_LOGGING_HTTP_4XX_LOG_LEVEL = logging.WARNING (и т. Д.), Чтобы переопределить это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...