日志记录 — Flask 文档
日志记录
Flask 使用标准 Python logging
。 有关 Flask 应用程序的消息使用 app.logger
记录,其名称与 app.name
相同。 此记录器还可用于记录您自己的消息。
如果您不配置日志记录,Python 的默认日志级别通常是“警告”。 低于配置级别的任何内容都将不可见。
基本配置
当您想为您的项目配置日志记录时,您应该在程序启动时尽快进行。 如果在配置日志记录之前访问 app.logger
,它将添加一个默认处理程序。 如果可能,请在创建应用程序对象之前配置日志记录。
本示例使用 dictConfig()
创建类似于 Flask 默认的日志配置,但所有日志除外:
默认配置
如果你自己不配置日志,Flask 会自动给 app.logger
添加一个 StreamHandler
。 在请求期间,它会写入由 WSGI 服务器指定的 environ['wsgi.errors']
中的流(通常是 sys.stderr
)。 在请求之外,它将登录到 sys.stderr
。
删除默认处理程序
如果您在访问 app.logger
后配置了日志记录,并且需要删除默认处理程序,则可以导入和删除它:
向管理员发送电子邮件错误
在远程服务器上运行应用程序进行生产时,您可能不会经常查看日志消息。 WSGI 服务器可能会将日志消息发送到一个文件,如果用户告诉您出现问题,您只会检查该文件。
为了主动发现和修复错误,您可以配置 logging.handlers.SMTPHandler
以在记录错误及更高级别时发送电子邮件。
这要求您在同一台服务器上设置了 SMTP 服务器。 有关配置处理程序的更多信息,请参阅 Python 文档。
注入请求信息
查看有关请求的更多信息(例如 IP 地址)可能有助于调试一些错误。 您可以将 logging.Formatter
子类化以注入您自己的可用于消息的字段。 您可以更改 Flask 的默认处理程序、上面定义的邮件处理程序或任何其他处理程序的格式化程序。
其他图书馆
其他库可能会广泛使用日志记录,您也希望从这些日志中查看相关消息。 最简单的方法是将处理程序添加到根记录器,而不仅仅是应用程序记录器。
根据您的项目,单独配置您关心的每个记录器可能更有用,而不是仅配置根记录器。
工匠
Werkzeug 将基本请求/响应信息记录到 'werkzeug'
记录器。 如果根记录器没有配置处理程序,Werkzeug 会向其记录器添加 StreamHandler
。
烧瓶扩展
根据情况,扩展可以选择登录到 app.logger
或它自己命名的记录器。 有关详细信息,请参阅每个扩展的文档。