2017-07-18 14 views
0

私はPythonコードへのロギングを有効にしました。pythonログの設定とすべてのメソッドへのアクセス

logging.basicConfig(level=logging.INFO, format='%(asctime)s %(levelname)s : %(message)s') 


logging.info('Log this message') 

しかし、その他のログ方法は使用できません。他の方法では何も印刷されません。

logging.debug('This is to debug only') 

これはlevel=logging.INFOと関連していますか?どのレベルを設定してすべてのロギング方法で使用できるようにする必要がありますか?

ありがとうございました。

+0

あなたの 'logging.error'は何も印刷しませんか? – zwer

+0

@zwer logging.debugは何も出力しません。 – seoppc

+0

これは、 'logging.basicConfig()'呼び出しのログレベルが 'logging.INFO'に設定されているためです。' logging.DEBUG'に切り替えて、より低いレベルのログを使用します。 – zwer

答えて

0

レベルの全体はlogging.DEBUGレベルなので、デバッグメッセージをログに記録することができます。デバッグメッセージがレベルを高く設定しないようにするには、次のようにします。

それでも例えば、デバッグメッセージを印刷したいがlogging.DEBUGよりも高いものに自分のロガーのレベルを設定し、requestsurllib3のように、あなたが使用しているモジュールの一部からのメッセージを抑制したい場合:

logging.basicConfig(level=logging.DEBUG, format='%(asctime)s %(levelname)s : %(message)s') 
logging.getLogger("requests").setLevel(logging.WARNING) 
logging.getLogger("urllib3").setLevel(logging.WARNING) 
+0

ありがとうロット@zwer – seoppc

0

すべてを記録するには、level=logging.DEBUGを使用する必要があります。

しかしlogging.errorは、典型的には、対象の問題を診断するときにのみ、でもlevel=logging.INFO

+0

loggin.errorは動作しますが、' logging.debug'は動作しません。 'logging.DEBUG'でレベルを設定すると、すべてのデバッグ版が出力されます。 – seoppc

+0

'logging.debug'を設定すると' requests'と 'urllib3'のデバッグが可能になります – seoppc

0

DEBUG詳細情報とエラーメッセージを印刷する必要があります。

INFO予想通りに動作していることを確認します。

警告予期せぬことが起こったか、近いうちに問題が発生していることを示す(「ディスクスペース不足」など)。 ソフトウェアは期待どおりに動作しています。

エラーより深刻な問題があるため、ソフトウェアは一部の機能を実行できませんでした。

クリティカル重大なエラー。プログラム自体が実行を継続できない可能性があることを示します。

デフォルトレベルはWARNINGです。つまり、ログパッケージが に設定されている場合を除き、このレベルのイベントのみが追跡されます。

あなたが情報にレベルを設定するときに、レベルのすべてを記録したい場合は、infowarningerrorcriticalログ

を取得する必要がありますがlogging.DEBUG

+0

' logging.debug'を設定すると 'requests'と' urllib3'のデバッグが可能になります – seoppc

+0

@seoppcしかし質問にはこれに言及しませんでした –

0

にあなたのレベルを設定するPythonのloggingモジュール持って構成の複数レベル

  • DEBUG
  • INFO
  • WARNING
  • ERROR
  • CRITICAL

表示されます。このログには、選択したどのレベルに応じて、上に示したソートされています。選択されたステージと、選択されたステージの上に「水平になる」他のステージが表示されます。

たとえば、INFOを選択すると、DEBUG以外のすべてのINFO/WARNING/ERRORログに対してログが表示されます。

これは、開発モードのときにDEBUGに設定したり、開発モードのときにWARNINGに設定したりするなど、現在の環境に応じて環境変数でソートすることができますプロダクションモードで使用します。

あなたの質問に具体的な答えを与えるために、最終的には

Python Logging Module

、以下のリンクでそれについての詳細を読むことができます。すべてのログを表示するには、DEBUGに設定する必要があります。

これにより、Pythonロギングモジュールの目的がわかりやすくなりました。

乾杯! 最大

関連する問題