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

时间:2017-07-19 17:35:31

标签: python django slack

我知道django会向管理员列表中的用户发送邮件,但我想知道django本身如何收到有关错误的通知。我正在寻找类似的东西:

if 500 error occurs:
    send slack message
    ...

我没有问题与松弛相结合,但我不知道如果条件如何得到它。我已经阅读了有关日志记录但没有找到任何相关内容的信息。

以下是我的日志记录设置:

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'
        },
    },
}

也许我错过了一些愚蠢的事情。谢谢你的帮助。

1 个答案:

答案 0 :(得分:2)

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

(找到相关答案here