Pythonのloggingモジュール完全入門!初心者でもわかるエラーをログに記録する方法
生徒
「Pythonでエラーが出たとき、画面に表示されるだけだと後から確認できなくて困ります…」
先生
「それなら、loggingモジュールを使ってエラーを記録すると便利ですよ。ノートにメモを残す感覚です。」
生徒
「ログって難しそうですが、初心者でも使えますか?」
先生
「基本だけ覚えれば大丈夫です。順番に見ていきましょう。」
1. loggingモジュールとは何か?
Pythonのloggingモジュールとは、プログラムの動きやエラー内容を記録するための標準機能です。人が日記を書くように、プログラムも「何が起きたか」を文字として残せます。これをログと呼びます。
エラーが起きた瞬間は画面を見ていなくても、後からログを見ることで原因を確認できます。初心者の方にとっては、失敗の記録を残して復習できる便利な道具です。
2. printとloggingの違い
Python初心者の方は、よくprintで状況を確認します。printは画面に文字を出すだけですが、loggingはファイルに保存できます。これは、口頭で説明するのと、紙にメモを書く違いに似ています。
プログラムが終了してもログは残るため、エラー調査や確認に役立ちます。エラーハンドリングと組み合わせることで、安全なプログラム設計ができます。
3. loggingの基本的な使い方
まずはloggingモジュールを読み込み、簡単なログを出してみましょう。ここではエラーではなく、情報を記録する例です。
import logging
logging.basicConfig(level=logging.INFO)
logging.info("プログラムが開始されました")
INFO:root:プログラムが開始されました
このように、logging.infoを使うと「情報ログ」が表示されます。levelはログの重要度を表します。
4. エラーをloggingで記録する方法
次に、例外処理と組み合わせてエラーをログに残す方法を見てみましょう。転んだ理由をメモするイメージです。
import logging
logging.basicConfig(level=logging.ERROR)
try:
result = 10 / 0
except ZeroDivisionError:
logging.error("0で割ろうとしました")
ERROR:root:0で割ろうとしました
このように書くことで、エラー内容がはっきりとログに残ります。
5. ログをファイルに保存する設定
画面表示だけでなく、ファイルにログを保存するとさらに便利です。ノートに書き残す感覚で考えてください。
import logging
logging.basicConfig(
filename="error.log",
level=logging.ERROR
)
try:
number = int("abc")
except ValueError:
logging.error("数字に変換できませんでした")
この設定で、error.logというファイルにエラー内容が保存されます。後から何度でも確認できます。
6. ログレベルの種類と使い分け
loggingには、重要度を表すログレベルがあります。代表的なものはDEBUG、INFO、WARNING、ERRORです。信号機の色分けのように、状況の重さを示します。
初心者の方は、INFOで動作確認、ERRORで失敗の記録を残すだけでも十分です。すべてを細かく使い分けなくても問題ありません。
7. loggingを使ったエラーハンドリング設計の考え方
loggingを使う目的は、エラーを隠すことではありません。何が起きたかを正確に残すことです。例外処理で画面表示を分かりやすくし、loggingで内部の記録を残すと、安全で親切な設計になります。
これは、お客様には分かりやすく説明しつつ、裏では詳細なメモを取っている状態と同じです。
8. 初心者がloggingで意識したいポイント
Pythonのloggingモジュールは最初は難しく見えますが、基本は「記録する」だけです。まずはエラーをファイルに残すことを目標にしましょう。
loggingを使うことで、Pythonの例外処理がより実用的になり、後から原因を調べる力も自然と身についていきます。