loggingモジュールは最初にbasicConfigする

Pythonにはloggingというモジュールがあって、こいつを使うとデバッグ文やログを取り扱うのが簡単に行えます。

対話モードで実験開始。

$ python3
>>> import logging
>>> logging.debug('デバッグ')
>>> logging.warn('注意')
WARNING:root:注意

debug関数のとき何も文字が表示されませんが、これはデフォルトのロギングレベルがWARNING(=30)になっているため。
loggingは、ロギングレベルより低いものは何も処理をしないので、debug(ロギングレベル=DEBUG(30))関数は何も表示しなかったというわけです。

そこで、basicConfigなる関数でロギングレベルを変えてやると、ちゃんと表示されるらしいことがわかりました。

>>> logging.basicConfig(level=logging.DEBUG)
>>> logging.debug('デバッグ')

おや?何も言わないぞ。 🙁

〜調査中〜

どうやら、import loggingをした後、最初のログ出力の前にbasicConfigを実行しないといけないみたいです。

すなわち、

$ python3
>>> import logging
>>> logging.basicConfig(level=logging.DEBUG)
>>> logging.debug('デバッグ')
DEBUG:root:デバッグ

今度はうまく行きました。

Pythonプログラミング物語 © 2016 Frontier Theme