为什么logging
忽略我为suds
记录器配置的设置?Python根记录器隐藏后代记录器级别
在我的Django应用程序,我在登录成立settings.py:
logging.basicConfig(
level = logging.DEBUG,
format = " %(levelname)s [%(asctime)s] %(filename)s: %(message)s",
datefmt='%d-%b %H:%M:%S',
)
我还使用肥皂水这个应用程序中,但不希望看到消息的里姆斯从肥皂水,所以我加了这一点:
SUDS_LOGGING_LEVEL = logging.CRITICAL
logging.getLogger('suds.client').setLevel(SUDS_LOGGING_LEVEL)
logging.getLogger('suds.transport').setLevel(SUDS_LOGGING_LEVEL)
logging.getLogger('suds.xsd.schema').setLevel(SUDS_LOGGING_LEVEL)
logging.getLogger('suds.wsdl').setLevel(SUDS_LOGGING_LEVEL)
logging.getLogger('suds.resolver').setLevel(SUDS_LOGGING_LEVEL)
logging.getLogger('suds.xsd.query').setLevel(SUDS_LOGGING_LEVEL)
logging.getLogger('suds.xsd.basic').setLevel(SUDS_LOGGING_LEVEL)
logging.getLogger('suds.binding.marshaller').setLevel(SUDS_LOGGING_LEVEL)
然而,我仍然看到泡沫调试消息。
如果我在泡沫调用之前放置一个pdb断点,我确认logging.getLogger('suds.client').level
是50(logging.CRITICAL
)。我走到泡沫线,我看到所有的日志记录。
如果我临时改变了根记录的水平,记录被抑制:
original_log_level = logging.getLogger().level
logging.getLogger().setLevel(logging.CRITICAL)
... do some suds stuff ...
logging.getLogger().setLevel(original_log_level)
这一切都表明suds
是忽略了泡沫日志记录级别。
为什么?
Django的1.2.7,Python 2.7版,0.4泡GA
两者都有帮助。添加记录器的名称表明确实有其他记录器正在记录。 单独设置“泡沫”记录器的级别就有诀窍。 谢谢。 – 2012-03-20 02:44:38