「Pythonで簡単にロギングを行うには」の版間の差分
提供: tknotebook
8行: | 8行: | ||
とりあえず | とりあえず | ||
− | + | #出力先はコンソールだけ | |
− | + | #適宜出力形式とレベルを変更できるだけでよい | |
の2条件を満たすだけなら恐ろしく簡単です。 | の2条件を満たすだけなら恐ろしく簡単です。 | ||
24行: | 24行: | ||
) | ) | ||
+ | ==構成ファイルを使ったロギング== | ||
+ | |||
+ | 通常アプリケーションではもう少し凝ったロギングが必要です。こんな場合を考えてみましょう | ||
お置きます。これでお膳立てはおしまいです。 | お置きます。これでお膳立てはおしまいです。 | ||
2018年1月1日 (月) 09:47時点における版
メインページ>コンピュータの部屋#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です。
これだけです。簡単ですよね。