До Django 2.2 я использовал специальное промежуточное ПО для перехвата и отправки по электронной почте всех отчетов об ошибках, включая множество полезной информации, включая имя сервера и трассировку Python.
В Django 2.2, аналогичнофункциональность теперь включена по умолчанию .К сожалению, он не такой многословный, как мне бы хотелось, и он переопределяет мое пользовательское промежуточное ПО, поэтому теперь я получаю меньше информации.Несмотря на утверждения документа, электронное сообщение об ошибке Django не включает ни трассировку Python, ни ошибку из исключения.Все электронные письма называются «Внутренняя ошибка сервера» и содержат только URL и словари GET и POST.Вы можете себе представить, как расстраивает диагностика ошибки «Внутренняя ошибка сервера» с использованием чуть более URL-адреса.
Как отключить настраиваемую программу отправки сообщений об ошибках Django?Документы утверждают, что он включен и настроен с помощью параметров ведения журнала, но даже если я удаляю все ссылки на django.utils.log.AdminEmailHandler
в моей конфигурации ведения журнала, Django по-прежнему отправляет сообщения об ошибках по умолчанию вместо использования промежуточного программного обеспечения.
В качестве альтернативыЕсть ли способ исправить содержимое электронной почты, чтобы оно содержало что-то полезное?Это моя текущая конфигурация регистрации:
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'formatters': {
'verbose': {
'format': '%(levelname)s %(asctime)s %(module)s %(process)d %(thread)d %(message)s'
},
'simple': {
'format': '%(levelname)s %(message)s'
},
'console': {
'format': '%(asctime)s %(name)-12s %(levelname)-8s %(message)s'
},
'coloredlogs': {
'()': 'coloredlogs.ColoredFormatter',
'fmt': '[%(asctime)s] %(name)s %(levelname)s %(message)s'
}
},
'handlers': {
'mail_admins': {
'level': 'ERROR',
'class': 'django.utils.log.AdminEmailHandler' # removing this has no effect?
},
'console': {
'class': 'logging.StreamHandler',
'formatter': 'coloredlogs'
},
},
'loggers': {
'': {
'level': 'INFO',
'handlers': ['console']
},
'alphabuyer': {
'level': 'DEBUG',
'handlers': ['console'],
'propagate': False
},
'django.request': {
'handlers': ['mail_admins'],
'level': 'ERROR',
'propagate': True
}
}
}