Pythonのloggingモジュールでエラーをログに記録する方法を完全解説!初心者でもわかる例外処理入門
生徒
「Pythonでエラーが起きたとき、あとから内容を確認する方法はありますか?」
先生
「あります。Pythonではloggingモジュールを使うと、エラーの内容をファイルなどに記録できます。」
生徒
「printで表示するのとは何が違うんですか?」
先生
「loggingを使うと、エラーの種類や時間を整理して残せるので、後から原因を調べやすくなります。」
1. loggingモジュールとは?
loggingモジュールとは、Pythonでログを記録するための標準機能です。ログとは、プログラムの動作の記録メモのようなもので、エラーが起きた時間や内容を書き残す役割があります。
紙のノートに「何時に何が起きたか」を書くイメージをすると分かりやすいです。print文はその場で画面に表示するだけですが、loggingは後から見返せる形で保存できます。
2. loggingを使うメリット
Pythonでloggingを使う最大のメリットは、エラー調査がとても楽になる点です。特にプログラムが長くなったり、毎日自動で動く処理では、画面に表示されないエラーも多くあります。
loggingを使えば、「いつ」「どこで」「どんなエラーが起きたか」を記録できるため、原因を落ち着いて確認できます。初心者の方ほど、ログを残す習慣をつけると安心です。
3. loggingの基本的な使い方
まずは、loggingモジュールを使った一番シンプルな例を見てみましょう。ここではエラー内容を画面に表示します。
import logging
logging.basicConfig(level=logging.ERROR)
try:
x = 10 / 0
except Exception as e:
logging.error("エラーが発生しました")
この例では、0で割る計算をしてエラーを発生させています。logging.errorは「これはエラーです」という記録を残すための命令です。
4. ログのレベルを理解しよう
loggingにはログレベルという考え方があります。これは「どれくらい重要な情報か」を表します。
- DEBUG:細かい動作確認用
- INFO:通常の動作報告
- WARNING:注意が必要な状態
- ERROR:エラー発生
- CRITICAL:致命的な問題
初心者の方は、まずERRORを使えれば十分です。慣れてきたらINFOやDEBUGも使ってみましょう。
5. エラーメッセージを一緒に記録する
エラー内容をより詳しく知りたい場合は、例外オブジェクトの情報も一緒にログに残します。
import logging
logging.basicConfig(level=logging.ERROR)
try:
int("abc")
except Exception as e:
logging.error(f"エラー内容: {e}")
これで、「何が原因で失敗したのか」がはっきり分かるログが残ります。エラー文をそのまま記録できるのでとても便利です。
6. ログをファイルに保存する方法
次は、ログをファイルに保存する方法です。ファイルに残せば、あとから何度でも確認できます。
import logging
logging.basicConfig(
filename="error.log",
level=logging.ERROR
)
try:
open("no_file.txt")
except Exception as e:
logging.error(f"ファイルエラー: {e}")
この例では、error.logというファイルにエラー内容が書き込まれます。メモ帳で開けば中身を確認できます。
7. loggingとprintの使い分け
初心者のうちはprintで確認することも多いですが、本番に近いプログラムではloggingが向いています。
printは一時的な確認、loggingは記録として残すもの、と覚えると混乱しません。エラー対応をきちんとしたい場合はloggingを使うのが基本です。
8. 例外処理とloggingを組み合わせる理由
Pythonの例外処理とloggingを組み合わせることで、「エラーで止まらない」「原因はきちんと残る」プログラムが作れます。
これは現場でもよく使われる考え方で、初心者のうちから身につけておくと安心です。エラーは怖いものではなく、記録して直せば良いものだと考えましょう。