如果你的应用在生产模式下运行(会在你的服务器上做),默认情况下,你不会看见
任何日志消息。为什么会这样?Flask 试图实现一个零配置框架。如果没有配置,日
志会存放在哪?猜测不是个好主意,因为它猜测的位置可能不是一个用户有权创建日
志文件的地方。而且,对于大多数小型应用,不会有人关注日志。
事实上,我现在向你保证,如果你给应用错误配置一个日志文件,你将永远不会去看
它,除非在调试问题时用户向你报告。你需要的应是异常发生时的邮件,然后你会得
到一个警报,并做些什么。
Flask 使用 Python 内置的日志系统,而且它确实向你发送你可能需要的错误邮件。
这里给出你如何配置 Flask 日志记录器向你发送报告异常的邮件:
ADMINS = ['yourname@example.com']
if not app.debug:
import logging
from logging.handlers import SMTPHandler
mail_handler = SMTPHandler('127.0.0.1',
'server-error@example.com',
ADMINS, 'YourApplication Failed')
mail_handler.setLevel(logging.ERROR)
app.logger.addHandler(mail_handler)
那么刚刚发生了什么?我们创建了一个新的
SMTPHandler 来用监听 127.0.0.1 的邮件服务器
向所有的 ADMINS 发送发件人为 server-error@example.com ,主题
为 “YourApplication Failed” 的邮件。如果你的邮件服务器需要凭证,这些功能也
被提供了。详情请见 SMTPHandler 的文档。
我们同样告诉处理程序只发送错误和更重要的消息。因为我们的确不想收到警告或是
其它没用的,每次请求处理都会发生的日志邮件。
你在生产环境中运行它之前,请参阅 控制日志格式 来向错误邮件中置放更多的
信息。这会让你少走弯路。
作者:冒牌SEO,如若转载,请注明出处:https://www.web176.com/flask2/21730.html