【问题标题】:Logging problems when using modules individually单独使用模块时的日志记录问题
【发布时间】:2011-11-28 11:24:07
【问题描述】:

我正在我自己的所有模块中广泛使用日志记录模块。当我在主例程中为日志记录模块创建配置时,这可以正常工作。 但是,当我想在交互式 shell 中单独测试我的一个模块并执行 logging.getLogger("foo") 时,我得到了错误:

找不到记录器“foo”的处理程序

这当然是有道理的,因为尚未配置日志记录模块。 当我再次在所有模块中调用 logging.basicConfig() 时,我的日志将被打印多次(python 文档还说只在主线程中调用 basicConfig() 一次)。

那么,这是如何干净地完成的呢? 能否检查一下日志模块是否已经配置好?

【问题讨论】:

    标签: python logging


    【解决方案1】:

    Logging module How-To中有解释。您可以创建一个辅助模块以包含在您执行任何日志记录的任何位置:

    import logging
    logging.getLogger('your_top_level_package').addHandler(logging.NullHandler())
    

    【讨论】:

    • 该死的......我以为我已经阅读了所有内容。很抱歉这个问题,感谢您的回答...完美。
    猜你喜欢
    • 1970-01-01
    • 2011-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-11
    • 2020-11-03
    • 1970-01-01
    相关资源
    最近更新 更多