概要
Pythonでロギングする時の手順
環境
- Python 3.7
実装
import logging
import sys
# ルートロガーの取得
logger = logging.getLogger()
# ログレベルの設定
logger.setLevel(logging.DEBUG)
# ルートロガーにハンドラが登録されていない場合、自前のハンドラを用意追加する
# Lambda上で実行する場合、最初からハンドラが登録されているため、一律でハンドラを追加すると、
# ログが2つに出るようになるので注意
if len(logger.handlers) == 0:
h = logging.StreamHandler(stream=sys.stdout)
logger.addHandler(h)
# ハンドラにフォーマットをセットする
for handler in logger.handlers:
handler.setFormatter(logging.Formatter("format: %(message)s"))
# 設定した内容でログがでる
logger.info("auaua")
# > format: auaua
# ルートロガーに設定を追加しているので、名前付きでロガーを取得しても設定を全部引き継ぐ
# ※厳密にいうと、名前付きロガーに打ったログ情報がルートロガーに伝播している
alogger = logging.getLogger("a")
alogger.info("alogger")
# > format: alogger
ablogger = logging.getLogger("a.b")
ablogger.info("ablogger")
# > format: ablogger