我正在使用下面的代碼使用記錄模塊在單獨的日誌文件中寫入錯誤和調試消息。但我希望只有在設置了特定環境變量的情況下才能進行日誌記錄。在下面的代碼中,我通過設置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
我的猜測是當第一次使用記錄器時會發生這種情況。也許'禁用'屬性檢查得太晚了。 –