設定ファイルによるログ出力の設定Pythonのloggingについて勉強中です。今回は、ログファイルの出力を設定ファイルで指定する方法を調べてみます。設定ファイルの記載方法と読み込み設定ファイルの記載方法はこちらを参考にしました。今回は旧来の設定ファイルで試してみることにします。最初のサンプルとして、rootロガーを使用。ログレベルはDEBUG。コンソールにログを出力する設定です。%(message)sdatefmt=私の中の理解を図にしてみました。loggers,handlers,formattersの3つの指定を行う。ここで指定するのは名前だけ。次に、各々の基本設定で指定した名前を使用して、命名するloggers_xxx,handlers_xxx,formatter_xxxこれらの詳細設定を行うという感じです。プログラムから設定ファイルを読み込むには、logging.config.fileConfigを使用します。サンプルプログラム全体では以下のようになりました。logging.getLogger()log.debug('debugメッセージ')log.info('infoメッセージ')log.warn('warnメッセージ')log.error('errorメッセージ')log.critical('criticalメッセージ')実行してみると、コンソールにログが出力されます。複数のロガー、ハンドラーの使用方法ここで試した最初のサンプルを設定ファイルに置き換えてみます。サンプルは、sub1とsub2で出力するロガーを変更するものでした。サンプルプログラムは以下の3つ。log.critical('criticalメッセージ')設定ファイルlogging.confはこんな感じになります。設定ファイル読み込み時にこんなエラーが発生しました。list必須パラメーターらしいので、rootロガーを宣言し、[logger_root]level=DEBUGhandlers=このように、ロガーのhandlersに何も指定しないことで、rootロガーによるログの出力をキャンセルしています。qualnameに指定した値がロガーの名前になるようです。実行してみると、想定通りの動作になりました。criticalメッセージ試しに、設定ファイルの一部を変更し、sub2のログレベルをERRORに変更してみます。[logger_sub2]level=ERRORhandlers=consoleHandlerqualname=sub2実行してみると、sub2のログはERROR以上しか表示されなくなりました。複数のロガー、ハンドラーの使用方法ここで試した二番目のサンプルを設定ファイルに置き換えてみます。sub1とsub2のログはコンソールに出力。加えてsub2のログはファイルにも出力するパターンです。%(message)sdatefmt=設定ファイルの編集だけで、sub2のログがファイルにも出力されるようになったと思います。次のページプロフィールAuthor:symfoblog形式だと探しにくいので、まとめサイト作成中です。