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)
まだ私はまだ泡のDEBUGメッセージが表示されます。
sudsコールの直前に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
は、ログレベルを泡を無視していることを示唆しています。
なぜですか?
ジャンゴ1.2.7、Pythonの2.7、泡0.4 GA
どちらも助けになりました。ロガーの名前を追加すると、実際にロギングしていた他のロガーがあることがわかりました。 "suds"ロガーのレベルだけを設定することは、そのトリックでした。ありがとうございます。 ありがとうございます。 –