Pythonのlogging
モジュールでログをファイルと標準出力に同時出力
Python
のlogging
モジュールは、ログを効率的に管理するために使われます。logging.StreamHandler
を使えば標準出力にログを送信し、logging.FileHandler
を使うとログをファイルに保存できます。この2つを組み合わせることで、ログをファイルと標準出力に同時に出力できます。
基本設定
以下のコードは、ファイルと標準出力の両方にログを出力する方法を示しています。
import logging
import sys
# ログの設定
file_handler = logging.FileHandler('logfile.log')
console_handler = logging.StreamHandler(sys.stdout)
# ログフォーマットの設定
formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')
file_handler.setFormatter(formatter)
console_handler.setFormatter(formatter)
# ルートロガーにハンドラを追加
logging.basicConfig(level=logging.DEBUG, handlers=[file_handler, console_handler])
# ログの出力例
logger = logging.getLogger()
logger.info('This is an info message')
logging.basicConfig()
を使った設定
logging.basicConfig()
にhandlers
引数でリスト形式のハンドラを渡すことで、ファイルと標準出力にログを出力できます。また、ログのフォーマットも簡単にカスタマイズ可能です。
より高度なログ設定
複雑なログ設定が必要な場合は、dictConfig()
や個別にハンドラを設定することで、出力先やフォーマットを柔軟に管理できます。