カテゴリ: Python 更新日: 2025/12/19

Pythonでログファイルを扱う方法!loggingモジュール初心者向け解説

Pythonでログファイルを扱う方法!loggingモジュールの使い方
Pythonでログファイルを扱う方法!loggingモジュールの使い方

先生と生徒の会話形式で理解しよう

生徒

「先生、Pythonでアプリの動きを記録したいです。ログってどうやって残すんですか?」

先生

「Pythonではloggingモジュールを使うと簡単にログを残せます。エラーや処理の状況をファイルに書き込むことができます。」

生徒

「ログって具体的に何を書けばいいんですか?」

先生

「ログはアプリの動作記録です。エラーが起きた時や、処理が正常に完了したことを残すと、後で原因を追跡しやすくなります。」

生徒

「なるほど、設定方法を教えてください!」

先生

「では順番に見ていきましょう。」

1. loggingモジュールとは?

1. loggingモジュールとは?
1. loggingモジュールとは?

Pythonのloggingモジュールは、アプリケーションの状態を記録するための仕組みです。ログはテキストファイルに保存でき、後から確認して問題の原因を追跡したり、アプリの動作を分析するのに役立ちます。例えば、銀行アプリでお金を移動した操作を記録するイメージです。

2. 基本的なログの書き方

2. 基本的なログの書き方
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. ログのレベルについて

3. ログのレベルについて
3. ログのレベルについて

ログには重要度があります。大きく分けると次の4種類です:

  • DEBUG:詳細な情報、デバッグ用
  • INFO:通常の処理状況の記録
  • WARNING:注意が必要な情報
  • ERROR:エラー発生時の情報

重要度の高いものだけ記録したい場合はlevel=logging.WARNINGのように設定します。

4. ファイルにログを書き込む

4. ファイルにログを書き込む
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. 既存のログファイルに追記する

5. 既存のログファイルに追記する
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. 実用例:エラーをキャッチしてログに残す

6. 実用例:エラーをキャッチしてログに残す
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. 注意点

7. 注意点
7. 注意点
  • ログファイルはアプリの動作に応じて大きくなることがあります。定期的に整理やローテーションが必要です
  • 機密情報はログに残さないように注意してください
  • loggingモジュールは非常に柔軟なので、慣れるとアプリのトラブルシューティングが格段に楽になります
カテゴリの一覧へ
新着記事
New1
Python
Pythonの文字列から一部を抽出する方法!スライスを使った基本的な切り出し方
New2
Flask
Flaskアプリのセキュリティ対策まとめ!初心者向けに基本をやさしく解説
New3
Flask
FlaskでCookieを安全に使う方法!HttpOnly・Secureフラグの使い方を徹底解説
New4
Flask
Flaskで外部APIと連携する方法!requestsライブラリの使い方を初心者向けに解説
人気記事
No.1
Java&Spring記事人気No1
Python
Pythonの文字列を1文字ずつ処理する方法!for文やlist化の活用例
No.2
Java&Spring記事人気No2
Python
Pythonでトランザクション処理を実装する方法を完全解説!commit・rollbackで安全なSQL操作
No.3
Java&Spring記事人気No3
Python
Pythonで仮想環境(venv)を作る方法!初心者向けに環境構築をステップ解説
No.4
Java&Spring記事人気No4
Python
Pythonの文字列から一部を抽出する方法!スライスを使った基本的な切り出し方
No.5
Java&Spring記事人気No5
Flask
Flaskとは何か?初心者向けにできること・特徴・インストール手順までやさしく解説
No.6
Java&Spring記事人気No6
Flask
Flask‑RESTfulでREST APIを構築する手順まとめ!初心者向けにやさしく解説
No.7
Java&Spring記事人気No7
Flask
Flaskで開発中にデータベースを初期化する方法!初心者でもわかる便利なTips
No.8
Java&Spring記事人気No8
Flask
FlaskアプリをNginx + Gunicornで本番運用する方法!初心者でもわかるデプロイ構成の基本