Pythonのloggingモジュールでログを出力する方法をわかりやすく解説
この記事では、Pythonにおける「ロギング(ログ出力)」の基本と、ログレベルによる保護・セキュリティ管理の各段階について学びます。
まず最初に logging モジュールをインポートし、その後ロガーを使って現在の状態を確認したり、メッセージを記録したりします。Pythonのロギングには、重要度に応じて以下の5つのレベルが用意されています。
- DEBUG(デバッグ)
- INFO(情報)
- WARNING(警告)
- ERROR(エラー)
- CRITICAL(致命的エラー)
logging モジュールは、設定を手動で行わなくてもすぐに使い始められるのが特徴です。
基本的な使用例
import logging
logging.debug('デバッグメッセージ')
logging.info('情報メッセージ')
logging.warning('警告メッセージ')
logging.error('エラーメッセージ')
logging.critical('致命的なエラーメッセージ')実行結果
WARNING:root: 警告メッセージ ERROR:root: エラーメッセージ CRITICAL:root: 致命的なエラーメッセージ
設定を行っていない場合、デフォルトでは WARNING 以上のレベルしか記録されないため、DEBUG や INFO のメッセージは表示されません。これらを表示させたい場合は、設定を明示的に行う必要があります。
basicConfig() でログレベルを設定する
次に、基本的な設定方法を見ていきましょう。basicConfig() の level パラメータを使うことで、どのレベル以上のログメッセージを記録するかを指定できます。
例
import logging
logging.basicConfig(level=logging.DEBUG)
logging.debug('このメッセージは記録されます')実行結果
DEBUG:root: このメッセージは記録されます
このように level=logging.DEBUG を設定すると、DEBUG レベル以上のすべてのメッセージが記録されるようになります。
コンソールではなくファイルにログを出力する
続いて、コンソールへの出力ではなく、ファイルへログを書き込む方法を紹介します。
例
import logging
logging.basicConfig(filename='app.log', filemode='w',
format='%(name)s - %(levelname)s - %(message)s')
logging.warning('このメッセージはファイルに記録されます')実行結果(app.log の内容)
root - WARNING - このメッセージはファイルに記録されます
ここでは filemode='w' を指定しているため、ファイルは上書きモードで開かれます。つまり、既存の内容を消して新たに書き込むことができます。なお、filemode を指定しない場合、デフォルトでは追記(append)モードで開かれる点に注意してください。
また、format パラメータでは、ロガー名(%(name)s)、ログレベル名(%(levelname)s)、メッセージ本文(%(message)s)など、出力形式を自由にカスタマイズできます。
まとめ
この記事では、Pythonの logging モジュールを使ったログ出力の基本と、DEBUG・INFO・WARNING・ERROR・CRITICALという5つのログレベルについて学びました。ログを適切に活用することで、プログラムの動作状況の把握やトラブルシューティングが格段にしやすくなります。まずは basicConfig() でレベルと出力先を設定し、開発に役立ててみてください。
-
【初心者向け】Pythonのissuperset()メソッドの使い方をわかりやすく解説
はじめにこの記事では、Pythonのissuperset()メソッドについて、基本的な仕組みから実際のコード例まで詳しく解説します。issuperset()は、セット(集合)に対して使用できるメソッドで、引数として渡されたセットのすべての要素が、呼び出し元のセットに含まれているかどうかを判定します。呼び出し元のセットBが、引数のセットAのすべての要素を含んでいる場合 → True を返すセットAの要素がすべてBに含まれていない場合 → False を返すつまり、「BがAの上位集合(スーパーセット)であるかどうか」を判定するためのメソッドです。基本構文B.issuperset(A)この式は、Bが
-
Pythonのアンダースコア(_)の使い方を徹底解説!シングルとダブルの違いとは
Pythonでは、状況に応じてシングルアンダースコア(_)とダブルアンダースコア(__)を使い分けます。一見すると単なる記号に見えますが、それぞれに明確な役割や慣習が存在します。 Pythonでアンダースコアが使われる主なケースは以下のとおりです。 インタプリタで最後に評価した式の値を保持したい場合 特定の値を意図的に無視したい場合 変数名や関数名の宣言において特別な意味を持たせたい場合 数値リテラルの桁区切りとして使いたい場合 国際化(i18n)や地域化(l10n)の関数として使いたい場合 それでは、それぞれのケースについて具体例を見ていきましょう。 インタプリタでの使用 Pythonの