🔥
Pythonのログレベル(DEBUG、INFO、WARNING、ERROR、CRITICAL)の違いを詳しく解説
Pythonでプログラムを開発する際、print
文を使ってデバッグや状態把握をすることがあります。しかし、実務的なプロジェクトや大規模アプリケーションでは、logging
ライブラリを使うのが一般的です。この記事では、Pythonのログレベルである「DEBUG」「INFO」「WARNING」「ERROR」「CRITICAL」について、それぞれの違いを詳しく解説します。
ログレベルとは?
ログレベルとは、プログラムから出力されるメッセージをその重要度に応じて分類したものです。Pythonでは、ログレベルは主に以下の5つに分かれています。
- DEBUG
- INFO
- WARNING
- ERROR
- 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