Python 日志模块 logging 使用 root Logg

2024-04-29  本文已影响0人  BeeBee生信

在文章《Python 日志模块 logging 的使用》里介绍了利用 logging 模块日志按层级传递,并所有日志都会传递到 root Logger 的机制,实现在主程序接收和处理模块日志的方法。但是要注意这个方法只适用于明确知道自己程序导入的第三方包没有用 logging 模块的情景,否则会将第三方包产生的日志也接收。

我就因为这样操作导致程序接收了 tensorflow 的日志,但是由于我程序的日志添加了一个自定义的属性并用 Filter 根据这个属性过滤,而 tensorflow 日志没有这个属性,导致程序运行报错。所以这种方案,如果没确定好第三方包的情况,轻则接收到不想要的日志,重则程序出问题。

因此,建议不要使用 root Logger。而是自己给程序所有 Logger 根据希望的日志传递需要起名字,比如主程序的 Logger 起名为 "WGSpipeline" 那么质控模块的 Logger 可以起名为 "WGSpipeline.QC",这样日志能从质控模块传递给主程序。

上一篇下一篇

猜你喜欢

热点阅读