【问题标题】:How does django know when a 500 or related server error occurs?django 如何知道何时发生 500 或相关的服务器错误?
【发布时间】:2017-12-25 03:06:34
【问题描述】:

我知道 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'
        },
    },
}

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

【问题讨论】:

    标签: python django slack


    【解决方案1】:

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

    (在相关答案here上找到)

    【讨论】:

    • 太棒了,肯定的!如果对您有帮助,您能否将其标记为正确答案?
    • 很乐意这样做。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-29
    • 2014-07-02
    • 2021-11-05
    • 1970-01-01
    相关资源
    最近更新 更多