\

Pythonのloggingモジュールは、プログラムの動作を追跡するための非常に強力なツールです。特に、複数のファイルにログを出力する必要がある場合、loggingモジュールはその柔軟性を発揮します。

LoggerとHandlerの設定

まず、loggingモジュールからgetLogger関数を使用してロガーを作成します。このロガーは、ログメッセージを生成するためのインターフェースを提供します。

import logging

logger = logging.getLogger('LogTest')
logger.setLevel(logging.DEBUG)

次に、ログメッセージの出力先を制御するためのハンドラを作成します。ここでは、StreamHandlerを使用して、ログメッセージを標準出力に出力します。

stream_handler = logging.StreamHandler()
stream_handler.setLevel(logging.DEBUG)

handler_format = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
stream_handler.setFormatter(handler_format)

logger.addHandler(stream_handler)

これで、ロガーはDEBUGレベル以上のすべてのログメッセージを標準出力に出力します。

複数のファイルにログを出力する

複数のファイルにログを出力するには、それぞれのファイルに対して独自のハンドラを作成します。以下に示すように、FileHandlerを使用して各ファイルにログを出力することができます。

file_handler1 = logging.FileHandler('file1.log')
file_handler1.setLevel(logging.DEBUG)
file_handler1.setFormatter(handler_format)

file_handler2 = logging.FileHandler('file2.log')
file_handler2.setLevel(logging.ERROR)
file_handler2.setFormatter(handler_format)

logger.addHandler(file_handler1)
logger.addHandler(file_handler2)

この設定では、file1.logにはDEBUGレベル以上のすべてのログが出力され、file2.logにはERRORレベル以上のログが出力されます。

以上がPythonのloggingモジュールを使用して複数のファイルにログを出力する基本的な方法です。この機能を活用することで、アプリケーションの異なる部分や異なるレベルのログ情報を効果的に管理することができます。.

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です