概要
Pythonのloggingについてまとめてみる。
基本編
loggingをつかうことでPythonでかんたんなロギングを行うことができる。
たとえば以下のようなコードをかいてみる。
import logging
logging.debug('でばっぐ')
logging.info('いんふぉ')
logging.warning('わーにんぐ')
logging.error('えらー')
logging.critical('くりてぃかる')
実行するとこんなかんじ。
$ python ./logger.py
WARNING:root:わーにんぐ
ERROR:root:えらー
CRITICAL:root:くりてぃかる
ログレベルを指定する
デフォルトではWARNING以上のレベルのログしかコンソールには出力されない。
ではDEBUGとINFOはどのように利用するかというとこのようなかんじ。
logging.basicConfig(level=logging.DEBUG)
といったかんじで指定してあげる。
import logging
logging.basicConfig(level=logging.DEBUG)
logging.debug('でばっぐ')
logging.info('いんふぉ')
logging.warning('わーにんぐ')
logging.error('えらー')
logging.critical('くりてぃかる')
実行するとこんなかんじである。
$ python ./logger.py
DEBUG:root:でばっぐ
INFO:root:いんふぉ
WARNING:root:わーにんぐ
ERROR:root:えらー
CRITICAL:root:くりてぃかる
ログをファイルに出力する
ログをコンソールに標準出力するだけではなく、ログファイルに出力したい時がある。
というかソッチのほうが多いかもしれない。
そのばあいはこんなかんじで指定してあげる。
import logging
logging.basicConfig(filename='wawawa.log')
logging.warning('わーにんぐ')
ファイルに出力される。
$ cat ./wawawa.log
WARNING:root:わーにんぐ
このログファイルへの出力はデフォルトでは追記である。
もういちどPythonを実行するとログファイルはこんなかんじになる。
$ cat ./wawawa.log
WARNING:root:わーにんぐ
WARNING:root:わーにんぐ
ログファイルを毎回追記じゃなくて新規でつくりたいなぁみたいなときはこんなかんじで`filemode='w'で指定してあげる。
import logging
logging.basicConfig(filename='wawawa.log',filemode='w')
logging.warning('わーにんぐ')
ログに日時を追加する
ログをだすときはだいたい日時がほしい。
のでそれをだす。
こんなかんじでフォーマットを指定してあげることができる。
import logging
logging.basicConfig(format='%(asctime)s:%(levelname)s:%(name)s:%(message)s')
logging.warning('わーにんぐ')
じっこうしてみるとこんなかんじ。
$ python ./logger.py
2019-10-02 22:49:43,019:WARNING:root:わーにんぐ
指定できるフォーマットはここにまとまっています。
logging --- Python 用ロギング機能 — Python 3.7.5rc1 ドキュメント
おわりに
べんりですね