Pythonでログファイルを扱う方法!loggingモジュール初心者向け解説
先生と生徒の会話形式で理解しよう
生徒
「先生、Pythonでアプリの動きを記録したいです。ログってどうやって残すんですか?」
先生
「Pythonではloggingモジュールを使うと簡単にログを残せます。エラーや処理の状況をファイルに書き込むことができます。」
生徒
「ログって具体的に何を書けばいいんですか?」
先生
「ログはアプリの動作記録です。エラーが起きた時や、処理が正常に完了したことを残すと、後で原因を追跡しやすくなります。」
生徒
「なるほど、設定方法を教えてください!」
先生
「では順番に見ていきましょう。」
1. loggingモジュールとは?
Pythonのloggingモジュールは、アプリケーションの状態を記録するための仕組みです。ログはテキストファイルに保存でき、後から確認して問題の原因を追跡したり、アプリの動作を分析するのに役立ちます。例えば、銀行アプリでお金を移動した操作を記録するイメージです。
2. 基本的なログの書き方
まずは最も簡単なログの記録方法です。
import logging
logging.basicConfig(filename="app.log", level=logging.INFO)
logging.info("アプリが起動しました")
logging.warning("これは警告メッセージです")
logging.error("エラーメッセージです")
ポイント:
filenameでログファイルの名前を指定levelで記録するログの重要度を指定(INFO, WARNING, ERRORなど)logging.info()で情報を記録、logging.error()でエラーを記録
3. ログのレベルについて
ログには重要度があります。大きく分けると次の4種類です:
- DEBUG:詳細な情報、デバッグ用
- INFO:通常の処理状況の記録
- WARNING:注意が必要な情報
- ERROR:エラー発生時の情報
重要度の高いものだけ記録したい場合はlevel=logging.WARNINGのように設定します。
4. ファイルにログを書き込む
ログは画面に表示することもできますが、通常はファイルに書き込むことが多いです。
import logging
logging.basicConfig(
filename="app.log",
level=logging.INFO,
format="%(asctime)s - %(levelname)s - %(message)s"
)
logging.info("処理が開始されました")
logging.error("エラーが発生しました")
ポイント:
formatでログの表示形式を設定可能%(asctime)sで日時、%(levelname)sでログの種類、%(message)sでメッセージを表示
5. 既存のログファイルに追記する
デフォルトではbasicConfigは上書きします。追記するにはfilemode="a"を設定します。
import logging
logging.basicConfig(
filename="app.log",
filemode="a",
level=logging.INFO,
format="%(asctime)s - %(levelname)s - %(message)s"
)
logging.info("新しい処理を追記")
6. 実用例:エラーをキャッチしてログに残す
実際のアプリではエラーが発生したときにログに残すと便利です。
import logging
logging.basicConfig(
filename="app.log",
level=logging.INFO,
format="%(asctime)s - %(levelname)s - %(message)s"
)
try:
result = 10 / 0
except ZeroDivisionError as e:
logging.error("ゼロで割ろうとしました: %s", e)
(出力例)
2025-11-18 21:00:00,000 - ERROR - ゼロで割ろうとしました: division by zero
7. 注意点
- ログファイルはアプリの動作に応じて大きくなることがあります。定期的に整理やローテーションが必要です
- 機密情報はログに残さないように注意してください
- loggingモジュールは非常に柔軟なので、慣れるとアプリのトラブルシューティングが格段に楽になります