我正在开发一个新的库,并且对日志记录的概念是全新的。
我已经使用Python的日志记录模块添加了日志记录。我提供的日志记录将特定的FileHandler设置为调试级别,将StreamHandler设置为警告级别。有关日志记录的Python文档说,库应仅具有Null处理程序。 这是文档链接https://docs.python.org/3/howto/logging.html#library-config
如果我的库中仍然有独占文件和流处理程序,那将会是一个问题。
我不明白为什么如果他们不能拥有自己的自定义处理程序,为什么应该在库中创建日志。
如果有人能消除我对在库中实现日志记录的理解空白,那将非常有帮助。
第二个问题:如果设置了Null处理程序,使用我的库的应用程序开发人员将如何访问/启用我在库中创建的日志?
答案 0 :(得分:0)
第一个问题-[来自python文档]-
“应用程序开发人员知道他们的目标受众以及什么 处理程序最适合其应用程序:如果添加 处理人员“在幕后”,您很可能会干扰他们的能力 进行单元测试并提供适合他们的日志 要求。” 1
作为您图书馆的用户,我可能想显示your_pkg.foo.baz中的日志, 但不是your_pkg.foo模块。 从您的库中添加处理程序可能会迫使我这样做(取决于设置为记录器和处理程序的日志级别)。
您的第二个问题- 添加Nullhandler允许用户通过logging.get_logger(“ your_pkg.foo.baz”)。add_handler(...)配置新的处理程序,从而选择自己的自定义日志记录需求。
全面了解日志记录机制(记录器,处理程序,过滤器和传播)- 你可以看这里- logging flow