爲什麼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