Python 发生500错误时向管理员发送电子邮件
在python中,当发生500错误时,如何向管理员发送电子邮件Python 发生500错误时向管理员发送电子邮件,python,bottle,Python,Bottle,在python中,当发生500错误时,如何向管理员发送电子邮件 我使用的web框架是“瓶子”。以下是 除了battle.HTTPError之外,所有未处理的异常都将导致500个内部服务器错误响应,因此它们不会使WSGI服务器崩溃 根据这一点判断,您可能希望捕获那些异常s并编写代码,以便向可能涉及的任何人发送电子邮件。您的代码将进入try块,您将获得瓶子.HTTPError异常的一些代码,然后编码以捕获发送所需电子邮件的所有其他异常 只需使用@error(code)装饰器定义错误处理页面,如下所示
我使用的web框架是“瓶子”。以下是 除了
battle.HTTPError
之外,所有未处理的异常都将导致500个内部服务器错误响应,因此它们不会使WSGI服务器崩溃
根据这一点判断,您可能希望捕获那些异常
s并编写代码,以便向可能涉及的任何人发送电子邮件。您的代码将进入try
块,您将获得瓶子.HTTPError
异常的一些代码,然后编码以捕获发送所需电子邮件的所有其他异常 只需使用@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
装饰器的函数将作为参数接收的不是错误代码,而是包含异常和回溯的对象
或者,您可以通过如上所述将battle.app().catchall
设置为False
,将瓶子设置为不处理异常,然后使用适当的WSGI中间件处理异常并发送电子邮件(例如.从标题开始,我最初以为你想一次向那个可怜的管理员发送500封电子邮件!:)谢谢事实上,我想知道瓶子是否提供了任何东西,我们可以用它来发送django中提供的500个错误电子邮件。(如果我不想写上面的代码)实际上你的建议只能通过电子邮件发送给我。我不知道它哪里出错了,因为它不会像django那样提供任何回溯。那么,有没有别的办法呢?我想一定有办法得到这个例外。我来看看。