发生500错误时通过电子邮件发送管理员

Tau*_*uir 4 python bottle

如何在python中发生500错误时向管理员发送电子邮件.

我正在使用的网络框架是"瓶子".

Liq*_*ire 8

只需使用@error(code)装饰器来定义错误处理页面,如下所示:

from bottle import run, error, route

@error(500)
def handle_500_error(code):
  # add mail send code here
  return "Error message here"

@route("/test_500")
def cause_error():
  raise Exception

run()
Run Code Online (Sandbox Code Playgroud)

只需导航即可/test_500查看它的实际效果

您当然可以使用模板作为错误页面,就像使用任何其他页面一样.我不确定在有错误处理程序时是否有办法获取内置的瓶子错误页面.

编辑:

显然,如果你使用的是最新的Bottle v0.8,你应用@error装饰器的函数接收的参数不是错误代码,而是一个bottle.HTTPError包含异常和回溯的对象.

或者,你可以设置一瓶未设置处理异常bottle.app().catchallFalse描述这里,然后用一些适当的WSGI中间件来处理它们并发送电子邮件(例如,像这样).