【问题标题】:What is the advantage of flask.logger over the more generic python logging module?与更通用的 python 日志记录模块相比,flask.logger 有什么优势?
【发布时间】:2015-10-29 13:50:54
【问题描述】:

我正在使用 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 记录器?建造它的原因是什么?

【问题讨论】:

    标签: python logging flask


    【解决方案1】:

    Flask 记录器使用“通用”Python 日志记录,它是 logging.getLogger(name) 和其他任何类型一样。

    记录器的存在是为了让 Flask 应用程序和视图可以记录执行期间发生的事情。例如,它将在调试模式期间记录 500 个错误的回溯。配置示例展示了如何启用这些日志,当您不处于调试模式时,这些日志在生产中仍然有用。

    拥有内部记录器并不是 Flask 独有的,它是在 Python 中使用日志记录的标准方式。每个模块都定义了自己的记录器,但记录的配置只由链中的最后一个链接处理:您的项目。

    您也可以将app.logger 用于您自己的消息,但这不是必需的。您还可以为自己的消息创建单独的记录器。最后,都是 Python 日志记录。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-07-17
      • 1970-01-01
      • 1970-01-01
      • 2016-07-04
      • 2011-03-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多