2016-04-07 107 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) 

這將在日誌文件中創建調試日誌級別的記錄,當然,您可以將其更改爲信息,警告,錯誤或關鍵。