我想在Python中使用“logging”模块将错误写入日志文件。但是,我希望只在出现错误时才创建文件。我使用以下代码:
import logging
f = 'test.conf'
logger = logging.getLogger("test_logger")
logger.setLevel(logging.INFO)
ch_file = logging.FileHandler("test_logger.conf")
ch_file.setLevel(logging.ERROR)
logger.addHandler(ch_file)
ch_file.close()
ch = logging.StreamHandler()
ch.setLevel(logging.INFO)
formatter = logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s")
ch.setFormatter(formatter)
logger.addHandler(ch)
logger.info("info")
logger.warn("warning")
#logger.error("error")
当取消注释logger.error(“error”)时,我希望文件“test_logger.conf”中包含错误。但是,当该行被注释掉时,我发现test_logger.conf文件仍然是空的。除非有错误报告,否则我怎么能这样做呢?
感谢。
答案 0 :(得分:7)
你很幸运。 FileHandler
具有为此目的设计的delay参数:
ch_file = logging.FileHandler("test_logger.conf",delay=True)