在强大的 Python 内置日志记录模块中,可以通过调用例如 logging.disable(logging.INFO)
来禁用某个级别以下的所有日志。
我没有在 doc 中找到如何重置或撤消此设置的方法.
我的目的是通过在 setUp()
中调用 logging.disable,然后在 tearDown( )
。
注意:如果我有一个给定的 logger
实例,我知道该怎么做:保持 logger.level
,将级别设置得更高,然后将其设置回 拆卸()
。我更喜欢一种无需明确选择即可将所有记录器静音的方法。
看起来答案是调用 logging.disable(logging.NOTSET)
import logging
logger = logging.getLogger('testlog')
handler = logging.FileHandler('\\path\\to\\testlog.log')
formatter = logging.Formatter('%(asctime)s %(levelname)s %(message)s')
handler.setFormatter(formatter)
logger.addHandler(handler)
logger.setLevel(logging.INFO)
logger.error("some error occurred")
logger.info('some info msg')
logging.disable(logging.ERROR)
logger.info('another info msg')
logging.disable(logging.NOTSET)
logger.info('last info msg')
产生一个具有以下输出的日志文件:
2012-05-17 11:09:24,441 ERROR some error occurred
2012-05-17 11:09:24,443 INFO some info msg
2012-05-17 11:09:24,443 INFO last info msg