1
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?

【備忘録】Pythonでログを出力する

Last updated at Posted at 2025-02-25

はじめに

今までは主にNodeで開発しており、各アプリの既存ログ機能を利用していましたが、Pythonで開発するにあたり自分で実装することになりました。
調べた結果、標準モジュールのloggingが便利だと感じたので、記事に残しておきたいと思います。

仕様

仕様については公式ドキュメントをご覧ください。リンク先はPython3.13用です。

実装例

loggingはターミナルやファイルに出力できます。

まずはターミナルに出力してみましょう。

import logging

# ログの基本設定
logging.basicConfig(
    level=logging.INFO,  # ログレベルをINFOに設定
    format='%(asctime)s - %(name)s - %(levelname)s - %(message)s'  # ログフォーマット
)

# ロガーの作成
logger = logging.getLogger(__name__)

# ログメッセージの出力
logger.info("これは情報メッセージです")
logger.warning("これは警告メッセージです")
logger.error("これはエラーメッセージです")

VSCodeのターミナルで実行します。
log1.png

log2.png
ターミナルに出力できました!

今度はログファイルに出力します。

import logging
import os

# ログファイルの設定
LOG_DIR = "."
LOG_FILE = os.path.join(LOG_DIR, "app.log")

# ログの基本設定
logging.basicConfig(
    level=logging.INFO,
    format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
    handlers=[logging.FileHandler(LOG_FILE, encoding='utf-8')]  # ファイルハンドラを追加
)

logger = logging.getLogger(__name__)

# ログメッセージの出力
logger.info("これは情報メッセージです")
logger.warning("これは警告メッセージです")
logger.error("これはエラーメッセージです")
logger.critical("これは重大なエラーメッセージです")

こちらもVSCodeで実行します。
log7.png
log8.png
ログファイルを開くと、きちんと記録されていました!
フォーマットはカスタムできるので、見やすいように調整すると良さそうです。
(今回のコードは最も標準的なもののようです。)

終わりに

初めて実装したloggingは現在時刻をdatetimeモジュールで取得していましたが、記事執筆をする中で時刻取得機能があることを知りました∑(゚Д゚)
(生成AIの felo に教えてもらいました)
つい生成AIに頼ってしまいますが、自分でアウトプットするためにもインプット大事!と感じました。

開発段階ではprint()を使うことも多いですが、ファイル出力ができ、機能やフォーマットも共通化できる点で、運用時のメリットがありそうだと感じました。

最後までご覧いただき、ありがとうございました!

1
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
1
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?