我有一个使用python脚本在命令行上运行的jar文件。jar文件有时可能引发异常或崩溃。我想把这些事件和异常记录在一个文件中。我使用的是sys.stderr
和sys.stdout
,它们似乎都无法捕捉到异常。我写这封信是想问我如何在python脚本中做到这一点。
使用管道的简单运行会产生:
def run_capture(command):
import subprocess
child = subprocess.Popen(command, stdout = subprocess.PIPE, stderr = subprocess.PIPE)
(output, errput) = child.communicate()
print "Out:'%s'" % output
print "Err:'%s'" % errput
所有输出都被捕获。
如果我将stderr = subprocess.PIPE
更改为stderr = file("destfile.txt", "w")
,则stderr输出将转到请求的文件。