2016-04-07 105 views
0

我试图构建一个记录器,它也会记录python解释器的完整输出,通常在控制台上看到的内容。Python日志python解释器输出

这是我的建议,它没有工作。

logger = logging.getLogger() 
stdoutStreamHandler = logging.StreamHandler(sys.stdout) 
stderrStreamHandler = logging.StreamHandler(sys.stderr) 
fileHandler = logging.FileHandler(logpath) 
logger.addHandler(stdoutStreamHandler) 
logger.addHandler(stderrStreamHandler) 
+0

我的答案对你有什么用?我对你的结果感兴趣。 –

回答

0

不确定您登录从Python解释器的全输出的意思,你的意思是命令行解释器或在运行时的背景解释?

无论哪种方式,这可能会帮助:trace

这将允许您执行与跟踪的任何代码,而且还会让你写出来的文件:

import sys 
import trace 

# create a Trace object, telling it what to ignore, and whether to 
# do tracing or line-counting or both. 
tracer = trace.Trace(
    ignoredirs=[sys.prefix, sys.exec_prefix], 
    trace=0, 
    count=1) 

# run the new command using the given tracer 
tracer.run('main()') 

# make a report, placing output in the current directory 
r = tracer.results() 
r.write_results(show_missing=True, coverdir=".") 

我自己还没有使用它,但它可以执行

logger.debug(r) 

这将在日志文件中创建调试日志级别的记录,当然,您可以将其更改为信息,警告,错误或关键。