将记录器消息存储在列表中

时间:2019-03-28 00:00:53

标签: python logging

基于对该问题的公认答案: storing logger messages in a string

我想完成同样的事情,但是将每条日志消息发送到一个列表中。

非常感谢

1 个答案:

答案 0 :(得分:0)

使用特殊情况的BufferingHandler实例在stdlib中已经可以实现。如果使用无限缓冲区,则永远不会刷新。

>>> myhandler = logging.handlers.BufferingHandler(capacity=float('inf'))
>>> logging.basicConfig(handlers=[myhandler]) 
>>> logging.warning("uh-oh")
>>> logging.error("boom") 
>>> myhandler.buffer
[<LogRecord: root, 30, <ipython-input-11-feb6b3c2bc6f>, 1, "uh-oh">,
 <LogRecord: root, 40, <ipython-input-12-fd4144525168>, 1, "boom">]