「Pythonで簡単にロギングを行うには」の版間の差分

提供: tknotebook
移動: 案内検索
8行: 8行:
  
 
とりあえず
 
とりあえず
・出力先はコンソールだけ
+
#出力先はコンソールだけ
・適宜出力形式とレベルを変更できるだけでよい
+
#適宜出力形式とレベルを変更できるだけでよい
  
 
の2条件を満たすだけなら恐ろしく簡単です。
 
の2条件を満たすだけなら恐ろしく簡単です。
24行: 24行:
 
  )
 
  )
  
 +
==構成ファイルを使ったロギング==
 +
 +
通常アプリケーションではもう少し凝ったロギングが必要です。こんな場合を考えてみましょう
 
お置きます。これでお膳立てはおしまいです。
 
お置きます。これでお膳立てはおしまいです。
  

2018年1月1日 (月) 09:47時点における版

メインページ>コンピュータの部屋#Python>Python Tips

Python は最近山ほど書籍が出ていますが、プログラミングでは必須な ロギング に関する情報がなさすぎなので 簡単なまとめを書いてみることにしました。

最も簡単なやり方

とりあえず

  1. 出力先はコンソールだけ
  2. 適宜出力形式とレベルを変更できるだけでよい

の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です。

これだけです。簡単ですよね。