django 如何知道 500 或相关服务器错误何时发生?

How does django know when a 500 or related server error occurs?

我知道 django 会向管理员列表中的用户发送邮件,但我想知道 django 本身是如何收到错误通知的。我正在搜索类似的内容:

if 500 error occurs:
    send slack message
    ...

我与 slack 集成没问题,但我不知道如何获得 if 条件。我已阅读有关日志记录的信息,但没有找到任何相关信息。

这是我的日志记录设置:

LOGGING = {
    'version': 1,
    'disable_existing_loggers': True,
    'formatters': {
        'standard': {
            'format': "[%(asctime)s] %(levelname)s [%(name)s:%(lineno)s] %(message)s",
            'datefmt': "%d/%b/%Y %H:%M:%S"
        },
    },
    'handlers': {
        'file': {
            'level': 'DEBUG',
            'class': 'logging.FileHandler',
            'filename': os.path.join(os.path.join(BASE_DIR, 'econnect-local.log')),
        },
        'mail_admins': {
            'level': 'ERROR',
            'class': 'django.utils.log.AdminEmailHandler'
        },
    },
    'loggers': {
        'django': {
            'handlers': ['file'],
            'level': 'DEBUG',
            'propagate': True,
        },
        'xhtml2pdf': {
            'handlers': ['file'],
            'level': 'DEBUG'
        },
    },
}

也许我遗漏了一些愚蠢的东西。感谢您的帮助。

这看起来不像是您应该在日志记录设置中执行的操作,而是使用 middleware and the process_exception() 方法。只要视图捕获到错误,就会触发此函数,并且它可以访问引发的错误,供您处理。

(在相关回答中找到 here