在Python中强大的日志记录内置模块中,可以通过调用来禁用级别以下的所有日志logging.disable(logging.INFO).
我没有找到如何在文档中重置或撤消此设置.
我的目的是在进行单元测试时禁用和重新启用信息和调试级别日志,方法是调用logging.disable setUp(),然后调用(what?)in tearDown().
注意:如果我有一个给定的logger实例logger.level,我知道该怎么做:保持,设置更高的级别,然后重新设置它tearDown().我更喜欢一种方法来静音所有记录器而不明确选择它们.
看起来答案是调用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
| 归档时间: | 
 | 
| 查看次数: | 3403 次 | 
| 最近记录: |