我正在使用 Flask 构建一个网站,我现在正在向它添加一些我找到的日志记录 these docs .基本示例如下:
if not app.debug:
import logging
from themodule import TheHandlerYouWant
file_handler = TheHandlerYouWant(...)
file_handler.setLevel(logging.WARNING)
app.logger.addHandler(file_handler)
之后您可以使用 app.logger.error('An error occurred')
进行记录。这工作正常,但除了我没有看到比常规 python 日志记录模块有任何优势的事实之外,我还看到了一个主要的缺点:如果我想在请求上下文之外记录(例如,当使用 cron 作业运行一些代码时) 我收到错误是因为我在请求上下文之外使用应用程序。
所以我的主要问题是;我为什么要使用 Flask 记录器? build 它的原因是什么?
最佳答案
Flask 记录器使用“通用”Python 日志记录,它是一个 logging.getLogger(name)
和其他任何一样。
记录器的存在是为了让 Flask 应用程序和 View 可以记录执行期间发生的事情。例如,它将在 Debug模式下记录 500 错误的回溯。配置示例显示了如何在不处于 Debug模式时启用这些日志,这些日志在生产中仍然有用。
拥有内部记录器并不是 Flask 独有的,它是在 Python 中使用日志记录的标准方式。每个模块都定义了它自己的记录器,但日志记录的配置仅由链中的最后一个环节处理:您的项目。
您也可以为自己的消息使用 app.logger
,但这不是必需的。您还可以为自己的消息创建一个单独的记录器。最后,都是 Python 日志记录。
关于python - flask.logger 比更通用的 python 日志记录模块有什么优势?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33416107/