当Python发生500错误时,我该如何向管理员发送电子邮件?
我使用的Web框架是'bottle'。
@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()
只需导航到/test_500
即可查看其操作。
您当然可以像处理任何其他页面一样使用模板来处理错误页面。我不确定是否有一种方法可以在有错误处理程序的情况下获得内置的瓶子错误页面。
编辑:
显然,如果您正在使用最新版本的Bottle v0.8,则应用@error
装饰符的函数将接收到一个参数,而不是错误代码,该参数是一个bottle.HTTPError
对象,其中包含异常和回溯信息。
或者,您可以通过将bottle.app().catchall
设置为False
(如此处所述),从而设置瓶子不处理异常,然后使用一些适当的WSGI中间件来处理它们并发送电子邮件(例如,类似于此类中间件)。
根据这个,您需要捕获那些除了
bottle.HTTPError
之外的所有未处理异常都将导致500个内部服务器错误响应,因此它们不会使您的WSGI服务器崩溃。
Exception
并编写代码发送电子邮件给相关人员。您的代码将进入try
块,您将有一些代码用于bottle.HTTPError
异常,然后是用于捕获所有其他Exception
的代码,该代码将发送所需的电子邮件。