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