5

我想使用 Python 中的“日志记录”模块将错误写入日志文件。但是,我希望仅在出现错误时创建文件。我使用以下代码:

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 文件仍然是制作的并且是空的。除非有要报告的错误,否则我怎样才能做到这一点,以便不制作此文件?

谢谢。

4

1 回答 1

8

你很幸运。FileHandler具有为此目的设计的延迟参数:

ch_file = logging.FileHandler("test_logger.conf",delay=True)
于 2010-11-15T00:25:05.557 回答