Pythonでフォーマットされたログを出力する


今回はPythonでログを出力する方法を選定しようと思います。

前提記事

以下の環境を利用して本記事ではプログラムを実行します。

本記事の対象範囲

  • ログ出力時の考慮点
  • Loggingの仕様確認

ログ出力時の考慮点

あまり長々書くとあれなのですが、ログの出力は様々目的があると思います。
大きくは以下2点かと思います。
プログラムを本格的に組み始める前に運用手段を考えながらどのように出力してゆくのかを考えていくのが良いと思います。

  • プログラム開発時のデバッグ
  • 運用時の障害を検知し、原因を究明する

(ただ正直趣味のプログラミングではほぼ強制的に一人開発&運用だと思うので、よっぽど大規模でもなければ全部ログ出して見たほうがいろいろ手っ取り早いと思いますが…)

あとは開発コストと上記の実装充実度、をParseするならソフトウェアとの相性などを考えながら、出力したいですね。

Loggingの仕様確認

プログラム

import logging
# __name__はこのモジュールの名前
logger = logging.getLogger(__name__)

_detail_formatting = "%(asctime)s\t%(levelname)s\t%(name)s\t:%(message)s"
# 設定
logging.basicConfig(
    level=logging.DEBUG,
    format=_detail_formatting,
    # 出力先のファイル指定もできます
    # filename="./sample.log",
)

logger.debug("debug")
logger.info("info")
logger.warn("warn")
logger.error("error")

出力例

悪くないですね、シンプルで使いやすそうです。

Formatに利用できる変数

以下参照ください。

https://docs.python.org/ja/3/library/logging.html#logrecord-attributes

Please follow and like us:
タグ:

コメントを残す

メールアドレスが公開されることはありません。