Python错误日志记录
我想找到一种方法来记录每一个迫使python解释器退出并保存到文件以及打印到屏幕上的错误。我之所以想这样做,是因为我想保留我在编写代码时犯的错误类型的统计信息,以期找到避免我将来经常犯错误的方法 我一直试图通过使用子流程模块为python解释器编写包装来实现这一点。基本上,它运行python解释器,捕获任何输出,解析并将其保存到文件中,打印输出,并使用matplotlib生成一些摘要图。但是,从包装器脚本实时获取输出时遇到问题。例如,如果我正在运行的脚本是:Python错误日志记录,python,error-logging,Python,Error Logging,我想找到一种方法来记录每一个迫使python解释器退出并保存到文件以及打印到屏幕上的错误。我之所以想这样做,是因为我想保留我在编写代码时犯的错误类型的统计信息,以期找到避免我将来经常犯错误的方法 我一直试图通过使用子流程模块为python解释器编写包装来实现这一点。基本上,它运行python解释器,捕获任何输出,解析并将其保存到文件中,打印输出,并使用matplotlib生成一些摘要图。但是,从包装器脚本实时获取输出时遇到问题。例如,如果我正在运行的脚本是: import os import
import os
import time
for x in range(10):
print "testing"
time.sleep(10)
我将subprocess.Popen()与p.communicate()一起使用,包装器将等待100秒,然后打印所有输出。我希望包装器尽可能不可见——在这种情况下,理想情况是每10秒打印一次“测试”
如果有人能为我指出一个好的方法,我将不胜感激
谢谢 我相信您可以简单地用自己的函数替换
sys.excepthook
。你可以在报纸上看到
基本上,它允许您自定义异常渗透到迫使Python解释器退出时发生的情况。您可以这样使用它:
import sys
def my_excepthook(type, value, tb):
# you can log the exception to a file here
print 'In My Exception Handler'
# the following line does the default (prints it to err)
sys.__excepthook__(type, value, tb)
sys.excepthook = my_excepthook
您可能还需要查看,以格式化您得到的回溯