Python 内存中是否有记录错误的模块?

Python 内存中是否有记录错误的模块?,python,python-2.7,logging,Python,Python 2.7,Logging,所以我想把错误记录在内存中(我不想写任何日志文件),然后在程序执行后访问它们以批量显示它们。 它看起来像: ... Program executing ... ... Errors occured ! Error 1 : ... Error 2 : ... 我不是问自己怎么做,而是问一些现有的模块是否能够做到这一点。我希望尽可能多地使用标准模块。您可以将缓冲区传递给标准日志记录模块的一部分。在Python2中: import logging, StringIO print 'Setting

所以我想把错误记录在内存中(我不想写任何日志文件),然后在程序执行后访问它们以批量显示它们。 它看起来像:

...
Program executing ...
...
Errors occured !
Error 1 : ...
Error 2 : ...
我不是问自己怎么做,而是问一些现有的模块是否能够做到这一点。我希望尽可能多地使用标准模块。

您可以将缓冲区传递给标准日志记录模块的一部分。在Python2中:

import logging, StringIO

print 'Setting up logging ...'
stream = StringIO.StringIO()
log = logging.getLogger()
handler = logging.StreamHandler(stream)
log.addHandler(handler)

print 'Starting main program ...'
log.warning('This is serious')
log.error('This is really bad')

print 'Finished main, printing log messages ...'
print stream.getvalue()
预期的结果是:

Setting up logging ...
Starting main program ...
Finished main, printing log messages ...
This is serious
This is really bad
正如Hettomai所评论的,Python3的导入应该稍微改变:

import io
stream = io.StringIO()

将异常存储在列表中,并在需要时打印它们。在执行之间不起作用。你说的“内存中记录错误”是什么意思?您可以将它们放在一个变量中,如@msvalkon suggested您的执行环境是什么?uwsgi?如果使用python3,则必须替换这两行:导入io;stream=io.StringIO();很好,谢谢。