【问题标题】:Logging configuration with disable_existing_loggers = false使用 disable_existing_loggers = false 的日志记录配置
【发布时间】:2022-01-17 17:48:42
【问题描述】:

Python 日志记录教程暗示 disable_existing_loggers 应该是正确的,但我在配置时遇到了问题。我认为正在发生的事情是__main__ 模块导入了应用程序的各个部分,这些应用程序在配置日志系统之前设置了记录器(在导入期间)。这些记录器在配置时被禁用并且不会产生预期的输出。

我有数百个遗留源代码文件和十几个__main__ 模块入口点。删除所有设置单个记录器的顶级调用似乎是一个困难的猫群问题。重新工作每个 __main__ 模块可能是可能的,但简单地将 disable_existing_loggers 翻转为假(在 .json 中)要容易得多并且似乎有效。我认为没有人对记录器做任何非常棘手的事情,而且我没有看到补丁测试有限的问题。

这种方法的后果和陷阱是什么?需要做什么才能使其成为可靠的解决方案?

【问题讨论】:

    标签: python logging configuration legacy-code


    【解决方案1】:

    我不认为文档暗示它应该True - 他们只是声明默认值是True 以实现向后兼容性,即为了不破坏现有(旧) 代码。将False 传递给disable_existing_loggers 很好,很多人都这样做。当然,请确保您确实希望现有的记录器保持启用状态。

    【讨论】:

    • 好的,谢谢。我们将尝试更改它,因为我们知道它有助于我们的某些代码。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-08-23
    • 1970-01-01
    • 2018-07-02
    • 2013-09-11
    • 1970-01-01
    • 2014-07-18
    • 1970-01-01
    相关资源
    最近更新 更多