Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
与更通用的python日志模块相比,flask.logger有什么优势?_Python_Logging_Flask - Fatal编程技术网

与更通用的python日志模块相比,flask.logger有什么优势?

与更通用的python日志模块相比,flask.logger有什么优势?,python,logging,flask,Python,Logging,Flask,我正在使用Flask构建一个网站,现在我正在为它添加一些日志,我发现了一些日志。基本示例如下: if not app.debug: import logging from themodule import TheHandlerYouWant file_handler = TheHandlerYouWant(...) file_handler.setLevel(logging.WARNING) app.logger.addHandler(file_handl

我正在使用Flask构建一个网站,现在我正在为它添加一些日志,我发现了一些日志。基本示例如下:

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(“发生错误”)
进行日志记录。这很好,但除了我没有看到比常规python日志模块有任何优势之外,我还看到了一个主要的缺点:如果我想在请求上下文之外进行日志记录(例如,当使用cron作业运行一些代码时),我会出错,因为我在请求上下文之外使用应用程序

所以我的主要问题是,;我为什么要用烧瓶记录器呢?构建它的原因是什么?

Flask logger使用“通用”Python日志,它是一个
logging.getLogger(name)
,与其他日志一样

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

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

您也可以对自己的消息使用
app.logger
,尽管这不是必需的。您还可以为自己的消息创建一个单独的记录器。最后,一切都是Python日志记录