Pythonでデバッグログを出力する (loggingモジュールを使う)

Pythonでloggingモジュールを使ってログを取る方法です。 ちょっとしたPythonのスクリプトでも、簡単に導入できるので、コピペして使えるようにしておきます。 因みに「退屈なことはPythonにやらせよう」で読んでこの方法を知りました。 簡単なスクリプトでも、ログのレベルを変えたりといった事が簡単にできるのでおすすめです。 ### テンプレート ```python # coding: UTF-8 import logging logging.basicConfig(level=logging.DEBUG, format='%(asctime)s [%(levelname)s] %(message)s') # 以下の方法でログを出力する logging.debug("debug message") logging.info("info message") logging.warning("warning message") logging.error("error message") logging.critical("critical message") ``` 数行程度の使い捨てスクリプトであれば、print関数を使ったデバッグログでも問題ないと思いますが、もう少し複雑な事を行う場合は、loggingモジュールを使った方が後からDEBUGレベルを表示しなくさせるなどの事ができるので、良いと思います。 ### 出力するログレベルを変更する(ログを無効化する) ```python # coding: UTF-8 import logging # INFOレベル以上を表示するようにする logging.basicConfig(level=logging.INFO, format='%(asctime)s [%(levelname)s] %(message)s') logging.debug("debug message") # 出力されなくなる!! logging.info("info message") logging.warning("warning message") logging.error("error message") logging.critical("critical message") ``` ### その他 ここで紹介した方法では、グローバールな領域のloggingの設定を変更してしまうようなので、大きなプロジェクトなどでは、getLoggerメソッドでログ出力用のインスタンスを取得してログ出力した方が良さそうです。 私はPythonを使って使い捨てのスクリプトや、小さい規模のコードしか書かないのでここで紹介した方法で事が足りそうです。 事が足りなくなって調べたら、また記事にしたいと思います。

0 件のコメント :

コメントを投稿