我想将所有中间日志消息(警告、信息、错误)存储到 Python 中的一个字符串中,并在程序结束时将这些日志消息报告到控制台。
我尝试按照 http://opensourcehacker.com/2011/02/23/temporarily-capturing-python-logging-output-to-a-string-buffer/ 中概述的步骤进行操作,但没有成功。
有人能告诉我一个简短、干净的方法吗?
这是我现在尝试过的:
log = logging.getLogger('basic_logger')
log.setLevel(logging.DEBUG)
report = ""
memory_handler = logging.handlers.MemoryHandler(1024*20, logging.ERROR, report)
memory_handler.setLevel(logging.DEBUG)
log.addHandler(memory_handler)
log.info("hello world")
memory_handler.flush()
print "report:", report
原文由 trup 发布,翻译遵循 CC BY-SA 4.0 许可协议
它可以像记录到
StringIO
对象一样简单:输出
如果您只想记录 WARN、INFO 和 ERROR 级别的消息,您可以使用过滤器来完成。
LevelFilter
下面检查每个日志记录的级别否,只允许所需级别的那些记录:输出