カテゴリ: 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
Flask
認証と認可の違いを整理しよう!Flaskで押さえるべき基礎概念
New2
Flask
Flaskで非同期フォーム送信(Ajax POST)を実装する方法を解説!初心者でもわかるステップ解説
New3
Python
Pythonで定数を定義する方法!変更されない変数の書き方と命名ルールを初心者向けに解説
New4
Python
PythonでMySQLに接続する方法!pymysqlの基本的な使い方
人気記事
No.1
Java&Spring記事人気No1
Python
Pythonとは何か?初心者向けにできること・特徴・インストール手順までやさしく解説
No.2
Java&Spring記事人気No2
Flask
Flaskでデータベースを使う基本!SQLAlchemyの導入方法をやさしく解説
No.3
Java&Spring記事人気No3
Python
Pythonでリストの要素を検索・取得する方法!index()やin演算子の活用法
No.4
Java&Spring記事人気No4
Python
Pythonのインストール方法まとめ!Windows・Mac・Linux別にステップ解説
No.5
Java&Spring記事人気No5
Python
Pythonプログラムの書き方を基礎から学ぼう!初心者が覚えるべき文法とは?
No.6
Java&Spring記事人気No6
Python
Pythonで仮想環境(venv)を作る方法!初心者向けに環境構築をステップ解説
No.7
Java&Spring記事人気No7
Flask
Flaskアプリの環境変数をクラウドで安全に設定する方法!初心者のための完全ガイド
No.8
Java&Spring記事人気No8
Flask
Flaskでクラウド上のメッセージキュー(SQS/PubSub)を扱う完全ガイド!初心者向け解説