我想记录 Python 脚本的所有输出。我试过:
import sys
log = []
class writer(object):
def write(self, data):
log.append(data)
sys.stdout = writer()
sys.stderr = writer()
现在,如果我“打印‘某事’”,它就会被记录下来。但是,如果我犯了一些语法错误,比如“print 'something#”,它不会被记录 - 它会进入控制台。
如何从 Python 解释器中捕获错误?
我在这里看到了一个可能的解决方案:
http://www.velocityreviews.com/forums/showpost.php?p=1868822&postcount=3
但第二个示例登录到 /dev/null - 这不是我想要的。我想将它记录到我上面的示例或 StringIO 之类的列表中......
另外,最好我不想创建一个子进程(并在单独的线程中读取它的标准输出和标准错误)。