概要
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 ドキュメント
おわりに
べんりですね
独学プログラマー Python言語の基本から仕事のやり方まで
- 作者: コーリー・アルソフ
- 出版社/メーカー: 日経BP
- 発売日: 2018/03/20
- メディア: Kindle版
- この商品を含むブログを見る