我正在使用日志记录模块使用以下代码在单独的日志文件中写入错误和调试消息。但我希望只有在设置了特定的环境变量时才会发生日志记录。在下面的代码中,我通过设置关闭了日志记录logger.disabled=True
。但是,我观察到当我的应用程序完成执行时,会出现空日志文件。我在设置语句之后添加了一个删除这些文件的检查logger.disabled=True
,但它说文件不存在。这些文件何时生成 - 在脚本执行结束时,即使禁用了记录器,是否可以防止写入空文件?
class LevelFilter(logging.Filter):
def __init__(self, level):
self.level = level
def filter(self, record):
return record.levelno == self.level
logger = logging.getLogger("exceptionsLogger")
debugLogFileHandler = logging.FileHandler("Debug.log", mode='w')
errorLogFileHandler = logging.FileHandler("Error.Log", mode='w')
formatter = logging.Formatter('%(message)s')
errorLogFileHandler.setFormatter(formatter)
debugLogFileHandler.setFormatter(formatter)
logger.addHandler(debugLogFileHandler)
logger.addHandler(errorLogFileHandler)
debugLogFileHandler.addFilter(LevelFilter(logging.DEBUG))
errorLogFileHandler.addFilter(LevelFilter(logging.ERROR))
logger.setLevel(logging.DEBUG)
logger.disabled = True