🔥

Pythonのログレベル(DEBUG、INFO、WARNING、ERROR、CRITICAL)の違いを詳しく解説

2025/03/13に公開

Pythonでプログラムを開発する際、print文を使ってデバッグや状態把握をすることがあります。しかし、実務的なプロジェクトや大規模アプリケーションでは、loggingライブラリを使うのが一般的です。この記事では、Pythonのログレベルである「DEBUG」「INFO」「WARNING」「ERROR」「CRITICAL」について、それぞれの違いを詳しく解説します。


ログレベルとは?

ログレベルとは、プログラムから出力されるメッセージをその重要度に応じて分類したものです。Pythonでは、ログレベルは主に以下の5つに分かれています。

  1. DEBUG
  2. INFO
  3. WARNING
  4. ERROR
  5. CRITICAL

重要度は、DEBUG(低い)→CRITICAL(高い)の順に高くなります。


各ログレベルの解説と使用場面

① DEBUG(デバッグ用)

  • 用途:細かい動作や状態を確認するための情報を表示。
  • 使用例:関数内の変数の値や処理過程など、細かな挙動の確認。
logger.debug("ユーザーIDは {} です".format(user_id))

② INFO(一般情報)

  • 用途:プログラムの動作状況や主要な処理の開始・終了を伝える。
  • 使用例:処理の開始通知、学習の進捗、正常終了など。
logger.info("データベースへの接続を開始しました")

③ WARNING(警告)

  • 用途:想定外の状態だが、処理を続けることができるような問題を記録。
  • 使用例:設定ファイルが存在しない場合のデフォルト値使用、APIのレスポンス遅延など。
logger.warning("設定ファイルが見つかりません。デフォルト値を使用します")

④ ERROR(エラー)

  • 用途:処理中にエラーが発生したが、プログラム全体が完全に停止しない場合。
  • 使用例:ファイルへの書き込み失敗、一部のデータ取得に失敗した場合など。
logger.error("データベースへの書き込みに失敗しました")

⑤ CRITICAL(致命的エラー)

  • 用途:重大な問題が発生し、プログラム全体が続行不可能な状態。
  • 使用例:データベースへの接続に失敗し、システム全体が動作できないなど。
logger.critical("データベースに接続できません。システムを終了します")

各ログレベルの使用例まとめ

ログレベル 意味 代表的な使用場面
DEBUG 細かな動作確認 変数値の追跡、詳細な処理過程
INFO 動作の一般通知 開始・終了通知、通常処理
WARNING 潜在的問題 想定外の挙動だが続行可能
ERROR 明確な問題 一部の処理失敗、例外処理
CRITICAL 致命的問題 プログラムの継続不能

ログレベルの設定

Pythonのloggingライブラリでは、ログレベルを設定することで、そのレベル以上のログのみを表示させることが可能です。

logging.basicConfig(level=logging.INFO)
  • 上記の設定では、INFO以上(INFO、WARNING、ERROR、CRITICAL)のログが表示されます。
  • DEBUGは表示されません。

まとめ

ログレベルを適切に使い分けることで、問題発生時のトラブルシューティングが効率的になり、コードの品質と保守性を高めることができます。積極的に活用しましょう!

Discussion