かべぎわブログ

凄腕エンジニアのブログです

Pythonのloggingについてまとめる

概要

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言語の基本から仕事のやり方まで

独学プログラマー Python言語の基本から仕事のやり方まで