カテゴリ: Python 更新日: 2025/10/22

Pythonでログファイルを扱う方法を解説!初心者でもわかるloggingモジュールの使い方

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

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

生徒

「Pythonでプログラムの動作を記録する方法ってありますか?あとで見返したいんですが…」

先生

「それなら、loggingモジュールを使うといいですね。ログという記録を自動で残せるんです。」

生徒

「エラーとか動作の流れを、ファイルに保存できたりしますか?」

先生

「はい、できますよ。では、初心者の方でもわかるように、基本からloggingモジュールの使い方を説明していきますね。」

-

1. ログファイルとは?loggingモジュールを使う理由

1. ログファイルとは?loggingモジュールを使う理由
1. ログファイルとは?loggingモジュールを使う理由

ログファイルとは、プログラムが実行されたときの情報やエラーなどを記録するファイルのことです。ログという言葉は、「記録」や「日誌」という意味で使われます。

Pythonでは、logging(ロギング)という標準モジュールを使うことで、簡単にログを記録できます。標準モジュールとは、Pythonに最初から入っている機能で、追加インストールなしで使えます。

2. loggingモジュールの基本的な使い方

2. loggingモジュールの基本的な使い方
2. loggingモジュールの基本的な使い方

まずは、ログをファイルに書き込むための基本的なコードを紹介します。これでログファイルが作成され、メッセージが自動で記録されます。


import logging

logging.basicConfig(filename='app.log', level=logging.INFO)

logging.info('プログラムが開始されました')

basicConfigはログの設定をするための関数で、filenameで保存するファイル名を指定します。levelは記録する重要度のレベルです。

3. ログレベルとは?種類と使い分け

3. ログレベルとは?種類と使い分け
3. ログレベルとは?種類と使い分け

ログには、「どれくらい重要な情報か」を表すログレベルがあります。以下は主な種類です。

  • DEBUG(デバッグ):開発中の細かい情報
  • INFO(インフォ):一般的な実行情報
  • WARNING(ワーニング):注意が必要な情報
  • ERROR(エラー):問題が起きたとき
  • CRITICAL(クリティカル):重大なエラー

たとえば、ログレベルをWARNINGにすると、INFODEBUGの情報は記録されません。重要な情報だけ残したい場合に便利です。

4. 実際に複数のログを出力してみよう

4. 実際に複数のログを出力してみよう
4. 実際に複数のログを出力してみよう

それぞれのログレベルを使って、ログファイルに複数のメッセージを記録してみましょう。


import logging

logging.basicConfig(filename='sample.log', level=logging.DEBUG)

logging.debug('デバッグ情報')
logging.info('通常の情報')
logging.warning('警告が出ました')
logging.error('エラーが発生しました')
logging.critical('致命的な問題が起きました')

このコードを実行すると、"sample.log"というファイルが作成され、その中に各ログメッセージが追記されます。

-

5. ログファイルの出力例

5. ログファイルの出力例
5. ログファイルの出力例

ログファイルには次のような形で記録されます。


    DEBUG:root:デバッグ情報
    INFO:root:通常の情報
    WARNING:root:警告が出ました
    ERROR:root:エラーが発生しました
    CRITICAL:root:致命的な問題が起きました

rootはログの出力元を示すもので、特に設定しないとこう表示されます。日時を表示したいときは、設定を追加すれば対応可能です。

6. ログに日付や時間を表示するには?

6. ログに日付や時間を表示するには?
6. ログに日付や時間を表示するには?

ログに時間や日付を含めたい場合は、formatというオプションを使います。以下のように設定します。


import logging

logging.basicConfig(
    filename='time.log',
    level=logging.INFO,
    format='%(asctime)s - %(levelname)s - %(message)s'
)

logging.info('ログに時間を追加しました')

%(asctime)sは日付と時刻、%(levelname)sはレベル名、%(message)sはメッセージ本文を表します。

7. コンソールにもログを出力する方法

7. コンソールにもログを出力する方法
7. コンソールにもログを出力する方法

ログをファイルだけでなく、画面(コンソール)にも表示したい場合は、StreamHandlerを使います。


import logging

logger = logging.getLogger()
logger.setLevel(logging.INFO)

file_handler = logging.FileHandler('both.log')
stream_handler = logging.StreamHandler()

logger.addHandler(file_handler)
logger.addHandler(stream_handler)

logger.info('ファイルと画面に出力されます')

この設定をすると、ログはファイルと画面の両方に出力され、プログラムの状態をリアルタイムで確認できます。

8. よくあるエラーと対策

8. よくあるエラーと対策
8. よくあるエラーと対策

初心者がloggingモジュールを使うときに、よくあるミスを紹介します。

  • ログが出力されない:
    ログレベルの設定が原因のことが多いです。INFOにしているのにdebug()だけ使っていませんか?
  • 同じメッセージが2回表示される:
    basicConfigaddHandlerを両方使っていると、重複出力されることがあります。
  • ファイルが開けない:
    すでにファイルを別のソフトで開いていると、ログが書き込めないことがあります。

9. loggingモジュールを使うメリットとは?

9. loggingモジュールを使うメリットとは?
9. loggingモジュールを使うメリットとは?

print()関数でも動作の確認はできますが、loggingモジュールを使うと次のような利点があります。

  • ログファイルとして記録が残る
  • ログレベルで重要度を区別できる
  • エラーの原因をあとから確認しやすくなる
  • コンソールとファイル両方に出力できる

Pythonのログ機能は、初心者でも使いやすいように設計されています。ぜひ積極的に活用して、プログラムの動作を記録する習慣をつけましょう。

コメント
コメント投稿は、ログインしてください

まだ口コミはありません。

関連記事:
カテゴリの一覧へ
新着記事
PHPでセッションを使ってフォーム入力を保持する方法を解説!初心者向けステップバイステップ
Pythonで文字列をリストに変換する方法!split()とjoin()の使い方
Pythonの変数とは?定義方法とデータ型を初心者向けに解説
PHPでメールフォームを作る方法を徹底解説!初心者向けにmail関数とPHPMailerの使い方も紹介
人気記事
No.1
PHP&Python記事人気No1
Pythonでテキストファイルを1行ずつ読み込む方法(readline() / readlines())
No.2
PHP&Python記事人気No2
Pythonで文字列が数値か判定する方法!isdigit()・isnumeric()の違い
No.3
PHP&Python記事人気No3
Pythonのリストを辞書に変換する方法(dict() / zip())
No.4
PHP&Python記事人気No4
初心者向けにPHP でファイルを開く・読み込む・書き込む方法(fopen, fwrite, fread)を解説する記事
-