私は独自のハンドラーとフォーマットで独自のロガーをインスタンス化するコードを開発中です。Python 2ロガーは、デフォルトロガーの使用後に行を繰り返す
これで、ロギングモジュールを直接使用するライブラリを追加しました。これはロガーを壊してしまいます。元のロガーは、デフォルトのロガーが何も印刷していない間に、
提案がありますか? MCVE:
はimport sys
import logging
log = logging.getLogger('foo')
log.addHandler(logging.StreamHandler(sys.stdout))
log.setLevel(logging.DEBUG)
log.info("works once")
logging.info("Isn't printed")
log.info("printed twice with different format")
出力:それはまた、デフォルトのロガーのように見えるdoesntの
works once
printed twice with different format
INFO:foo:printed twice with different format
は何とか私のロガーインスタンスに追加のハンドラを追加します。
> print log.handlers
[<logging.StreamHandler object at 0x7f5d14314990>]
私は変更することはできません。モジュール私は含まれている...
可能であれば、使用しているライブラリのバグレポートを開きます。ライブラリは、ロギングにルートロガーを使用しないでください。あなたが直面しているような問題を引き起こします。 ライブラリは独自のロガー( 'getLogger()')を作成し、 'NullHandler'を添付してください。 – m1keil