我在我自己的所有模块中广泛使用了日志记录模块。当我在主例程中为日志记录模块创建配置时,这可以正常工作。 但是,当我想在交互式shell中单独测试我的一个模块并执行logging.getLogger(“foo”)时,我收到错误:
找不到记录器“foo”
的处理程序
这当然有道理,因为尚未配置日志记录模块。 当我再次在所有模块中调用logging.basicConfig()时,我的日志将被打印多次(python doc也说只在主线程中调用basicConfig()一次。)
那么,这怎么干净呢? 我可以检查是否已经配置了日志记录模块吗?
答案 0 :(得分:1)
在Logging module How-To中对此进行了解释。您可以创建一个帮助程序模块,以便在执行任何日志记录时包含在其中:
import logging
logging.getLogger('your_top_level_package').addHandler(logging.NullHandler())