私は自分のアプリケーションにPythonのロギングを実装しており、 "デフォルト"のルート設定を利用したいと考えています。私は設定ファイルでモジュールごとにロガーを定義しなければならないので、ルート設定を使用したい。特定のパッケージのログを無効にする
ルートロガーのDEBUGレベルのログを有効にすると、QPID Python Client APIの問題が発生しています。私のログファイルはqpidデバッグ文が殺到します:
2011-03-16 09:16:18664 - qpid.messaging.io.ops - DEBUG - [8de6b2c] SENT ..
2011- 03-16 09:16:18,667 - qpid.messaging.io.raw - DEBUG - ..
2011-03-16 09:16:18,668 - qpid.messaging.io.raw - DEBUG - READ [8de6b2c] ..
2011-03-16 09:16:18668 - qpid.messaging.io.ops - DEBUG - ..
など。
ように、2つの主要な質問:1)モジュールごとにロガーを定義せずに*私のモジュールのログ記録を有効にする方法はありますか?言い換えれば、共有された "ロガー設定"を行う方法があるので、ロガーごとにlogger_セクションを定義する代わりに、設定をデフォルトにする方法がありますか?
ような何か:
[logger_shared_settings]
loggers = logger_A,logger_B,logger_C,logger_D
level=DEBUG
2)またはどのように私は、configファイルを経由してqpidパッケージのログをフィルタリングすることができますか?
[loggers]
keys=root
[handlers]
keys=consoleHandler,fileHandler,nullHandler
[formatters]
keys=simpleFormatter
[logger_root]
level=DEBUG
handlers=consoleHandler,fileHandler
[handler_consoleHandler]
class=StreamHandler
level=DEBUG
formatter=simpleFormatter
args=(sys.stdout,)
[handler_fileHandler]
class=logging.handlers.RotatingFileHandler
level=DEBUG
formatter=simpleFormatter
args=('out.log',)
ここで私は避けるようにしようとしていた何だった:ここ
は、log.confファイルがある
[loggers]
keys=root, a, b, c, d
[handlers]
keys=consoleHandler,fileHandler,nullHandler
[formatters]
keys=simpleFormatter
[logger_root]
level=ERROR
handlers=nullHandler
[logger_a]
level=DEBUG
handlers=consoleHandler,fileHandler
[logger_b]
level=DEBUG
handlers=consoleHandler,fileHandler
[logger_c]
level=DEBUG
handlers=consoleHandler,fileHandler
これはうまくいきます、あなたは共有セットを行う方法について知っていますか何か? – Nix
Hmmm ...「共有設定」はどういう意味ですか? – oxyum
ルートロガーのようなものですが、私のアプリケーションでモジュールを適用できる別のセクションです。 – Nix