0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Pythonでロギングする(ログレベルとかメッセージのフォーマットもする時の標準的?な方法)

Last updated at Posted at 2019-05-23

概要

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

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?