Pythonのloggingでログを簡単に出力する方法
Pythonのlogging
モジュールは、プログラムの実行中にログメッセージを生成するための柔軟で強力なツールです。このモジュールを使用すると、さまざまなログレベルを設定し、ログメッセージを異なる出力先(コンソール、ファイルなど)に送信できます。
基本的な使い方
モジュールのインポート
ログレベルの設定
ログレベルを設定することで、記録するメッセージの重要度を制御できます。主なログレベルは以下の通りです。
DEBUG
: 詳細な情報、主に問題を診断するために使用INFO
: 一般的な情報、プログラムの進行状況などWARNING
: 警告、注意が必要な状況を示すERROR
: エラー、問題が発生したことを示すCRITICAL
: 重大なエラー、プログラムが続行できないことを示す
基本的な設定とログメッセージの出力
ファイルに出力する基本的なロギングインスタンスの使い方
ログ設定ファイルを使った設定
ルートロガーの設定ファイルを作成します。
logger_settings.py
使い方
logging
モジュールのメソッド(例えば、logging.debug()
, logging.info()
, logging.warning()
, logging.error()
, logging.critical()
など)を使用すると、デフォルトではルートロガー(または共通ロガー)にログを出力します。
複数のロギングインスタンスを使用する
logging.config.dictConfig()
を使用して複数のロギングインスタンスで出力を変更することができます。辞書形式でロギング設定を定義する際に、それぞれのロガーに対して異なるハンドラや設定を指定することが可能です。
以下は、複数のロギングインスタンスを設定し、それぞれに異なる出力先を指定する例です。
設定の内容について
formatters
: ログ出力の形式を定義するhandlers
:console_handler
はコンソールに出力し、file_handler_a
とfile_handler_b
はそれぞれ異なるファイルに出力するloggers
:logger_a
はデバッグ以上のメッセージをコンソールとlogger_a.log
に出力し、logger_b
は警告以上のメッセージをコンソールとlogger_b.log
に出力する
この設定により、各ロギングインスタンスはそれぞれ異なる出力先を持つことができます。これを利用して、アプリケーション内の異なるモジュールやコンポーネントごとにログを管理することができます。