使用logging模块,仅在出现错误时创建Python日志文件

5

我想在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文件仍然被创建了,但是是空的。我该如何做才能使得只有在需要报告错误时才创建此文件呢?
谢谢。
1个回答

8

你很幸运,FileHandler有一个专门为此目的设计的delay参数:

ch_file = logging.FileHandler("test_logger.conf",delay=True)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接