次の例を検討してください。
import logging
#create a logger object:
logger = logging.getLogger("MyLogger")
#define a logging handler for the standard output:
stdoutHandler = logging.StreamHandler(sys.stdout)
logger.addHandler(stdoutHandler)
#...
#initialization code with several logging events (for example, loading a configuration file to a 'conf' object)
#...
logger.info("Log event 1")
#after configuration is loaded, a new logging handler is defined for a log file:
fileHandler = logging.FileHandler(conf.get("main","log_file"),'w')
logger.addHandler(fileHandler)
logger.info("Log event 2")
この例では、「ログイベント1」はログファイルに表示されません(stdoutのみ)。ログファイルは、「ログイベント1」の後に必然的に初期化されます(構成に依存するため)。
私の質問は次のとおりです。
以前にログに記録されたイベント(「ログイベント1」など)を新しいログハンドラー(例のファイルハンドラーなど)に含めるにはどうすればよいですか?