「Pythonで簡単にロギングを行うには」の版間の差分
提供: tknotebook
2行: | 2行: | ||
[[メインページ]]>[[コンピュータの部屋#Python]]>[[Python Tips]] | [[メインページ]]>[[コンピュータの部屋#Python]]>[[Python Tips]] | ||
+ | Python は最近山ほど書籍が出ていますが、プログラミングでは必須な '''ロギング''' に関する情報がなさすぎなので | ||
+ | 簡単なまとめを書いてみることにしました。 | ||
− | + | ==最も簡単なやり方== | |
+ | |||
+ | とりあえず | ||
+ | ・出力先はコンソールだけ | ||
+ | ・適宜出力形式とレベルを変更できるだけでよい | ||
+ | |||
+ | の2条件を満たすだけなら恐ろしく簡単です。 | ||
+ | |||
+ | まずメインモジュールの冒頭に以下の import 文を加えます。 | ||
import logging | import logging | ||
− | + | そしてメインモジュールのモジュールレベルの先頭に | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | logging.basicConfig( | |
+ | level=logging.DEBUG, | ||
+ | format='%(asctime)s %(levelname)-8s %(module)-18s %(funcName)-10s %(lineno)4s: %(message)s' | ||
+ | ) | ||
− | logger. | + | お置きます。これでお膳立てはおしまいです。 |
− | logger. | + | |
+ | ログを出力するところには以下のように書きます。 | ||
+ | |||
+ | logger.debug("デバッグ") | ||
+ | logger.info("情報") | ||
出力はコンソールに | 出力はコンソールに | ||
− | + | 2018-01-01 18:09:39,992 DEBUG main_module <module> 10: デバッグ | |
− | + | 2018-01-01 18:09:39,992 INFO main_module <module> 11: 情報 | |
+ | |||
+ | と出力されます。 | ||
+ | |||
+ | 既にお察しとは思いますが、ログの第一コラムは日付、第2コラムは時刻、第3コラムはログレベル、第4コラムはモジュール名です。 | ||
+ | |||
+ | 第5コラムは関数名かメソッド名が表示されますが、モジュールレベルでログ出力を呼んだ場合 <module> と出力されます。 | ||
+ | 第6コラムはモジュール内の行番号、最後がログメッセージです。 | ||
+ | |||
+ | メインモジュール以外でロギングを使うときは、先頭に import logging を書き、logger.debug 等でログ出力を書けばOKです。 | ||
− | + | これだけです。簡単ですよね。 |
2018年1月1日 (月) 09:43時点における版
メインページ>コンピュータの部屋#Python>Python Tips
Python は最近山ほど書籍が出ていますが、プログラミングでは必須な ロギング に関する情報がなさすぎなので 簡単なまとめを書いてみることにしました。
最も簡単なやり方
とりあえず ・出力先はコンソールだけ ・適宜出力形式とレベルを変更できるだけでよい
の2条件を満たすだけなら恐ろしく簡単です。
まずメインモジュールの冒頭に以下の import 文を加えます。
import logging
そしてメインモジュールのモジュールレベルの先頭に
logging.basicConfig( level=logging.DEBUG, format='%(asctime)s %(levelname)-8s %(module)-18s %(funcName)-10s %(lineno)4s: %(message)s' )
お置きます。これでお膳立てはおしまいです。
ログを出力するところには以下のように書きます。
logger.debug("デバッグ") logger.info("情報")
出力はコンソールに
2018-01-01 18:09:39,992 DEBUG main_module <module> 10: デバッグ 2018-01-01 18:09:39,992 INFO main_module <module> 11: 情報
と出力されます。
既にお察しとは思いますが、ログの第一コラムは日付、第2コラムは時刻、第3コラムはログレベル、第4コラムはモジュール名です。
第5コラムは関数名かメソッド名が表示されますが、モジュールレベルでログ出力を呼んだ場合 <module> と出力されます。 第6コラムはモジュール内の行番号、最後がログメッセージです。
メインモジュール以外でロギングを使うときは、先頭に import logging を書き、logger.debug 等でログ出力を書けばOKです。
これだけです。簡単ですよね。