我阅读了一些关于在Flask中登录的文档和一些示例。然后我写下这段代码:
ADMINS = [config["sys_admin_email"]]
if not app.debug:
from logging.handlers import SMTPHandler
mail_handler = SMTPHandler(mailhost=('smtp.email.com', 587),
credentials=('helpdesk@email.com', 'fsociety'),
fromaddr='helpdesk@email.com',
toaddrs=ADMINS, subject='Service Failed')
mail_handler.setLevel(logging.ERROR)
# config the format
mail_handler.setFormatter(logging.Formatter('''
Message type: %(levelname)s
Location: %(pathname)s:%(lineno)d
Module: %(module)s
Function: %(funcName)s
Time: %(asctime)s
Message:
%(message)s
'''))
app.logger.addHandler(mail_handler)
但我无法理解mail_handler如何处理异常? 我问这是因为我想在内部错误(500)引发时通知我的系统管理员。
注意:也许我需要一个错误处理程序,所以我创建了这个方法来捕获所有内部错误。但是不起作用。
@app.errorhandler(500)
def reportToSysAdmin(e):
app.logger.error(e)
print "email sent"
答案 0 :(得分:0)
请查看以下链接:
http://flask.pocoo.org/docs/0.10/errorhandling/
<强>详细信息:强>
上面的代码创建了一个新的SMTPHandler,它将邮件服务器127.0.0.1上的邮件发送到地址为server-error@example.com的所有ADMINS,主题为“服务失败”。如果您的邮件服务器需要凭据,也可以提供这些凭据。为此,请查看SMTPHandler的文档。