Python(2.7)での初めてのロギング実験では、ロガーをすぐに作成する基本的なロギングモジュールを作成しています(モジュールごとにコンフィグレーションする必要はありません) /クラス)。Pythonロギング:デバッグレベルの情報のみを表示します
私がしたいことは、レベルINFO以上のすべてのメッセージをコンソールに表示し、すべてのDEBUGレベルの情報をテキストファイルに移動するロガーを作成することです。
これまでのところ、INFOを出力してコンソールに出力するロガーを作成し、すべてのログメッセージをテキストファイルに出力します。しかし、私はすべてのINFOとより高いメッセージをテキストファイルに入れたくありません。
私はコードを保持するPython Fiddleを作成しました。
私はチュートリアルから次のデバッグメッセージを使用:
[INFO] root: Airspeed 300 knots
[WARNING] root: Low on fuel
[ERROR] root: No fuel. Trying to glide.
[CRITICAL] root: Glide attempt failed. About to crash.
そして、私のdebug_log.txtファイル内:コンソール農産物の
log.debug('All systems operational')
log.info('Airspeed 300 knots')
log.warn('Low on fuel')
log.error('No fuel. Trying to glide.')
log.critical('Glide attempt failed. About to crash.')
を
2013-06-14 14:51:46,963:DEBUG:root:All systems operational
2013-06-14 14:51:46,964:INFO:root:Airspeed 300 knots
2013-06-14 14:51:46,964:WARNING:root:Low on fuel
2013-06-14 14:51:46,964:ERROR:root:No fuel. Trying to glide.
2013-06-14 14:51:46,964:CRITICAL:root:Glide attempt failed. About to crash.
で上記のブロック、後の4行はファイル内にあってはなりません。私がしようとしていることは可能なのですが、どうすれば希望の結果が得られますか?
私はちょうどそれを書いていました:-) – zmo
ありがとう、私はコードが正確に動作するのを見なければならないでしょうが、この情報で私はそこに着きます。 :) –
今後の参考として、以下を指摘しておきます。 上記のコードは主に動作します。クラスの最後にはコロンがいくつかありますが、それらは簡単に見つけられます。 'if record.level!= DEBUG:'という行を 'record.levelno == DEBUG:'に置き換えた場合、DEBUG以外のログはすべて正しくフィルタリングされます。 –