Python错误日志

2024-04-19 07:19:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我想找到一种方法来记录每一个迫使python解释器退出并保存到文件中以及打印到屏幕上的错误。我之所以想这样做,是因为我想保留我在编写代码时所犯错误类型的统计数据,以期找到避免我在将来经常犯错误的方法。

我一直试图通过使用subprocess模块为python解释器编写一个包装器来实现这一点。基本上,它运行python解释器,捕获任何输出,解析并保存到文件中,打印输出,并使用matplotlib生成一些摘要图。但是,实时获取包装器脚本的输出时遇到问题。例如,如果我运行的脚本是:

import os  
import time

for x in range(10):  
    print "testing"  
    time.sleep(10)  

我将subprocess.Popen()与p.communicate()一起使用,包装器将等待100秒,然后打印所有输出。我希望包装纸尽可能不可见-在这种情况下,理想情况下,它会每10秒打印一次“测试”。

如果有人能指点我做这件事的好方法,我将不胜感激。

谢谢!


Tags: 文件方法代码import脚本类型屏幕time
1条回答
网友
1楼 · 发布于 2024-04-19 07:19:05

我相信您可以简单地用自己的函数替换sys.excepthook。你可以在Python documentation里读到。

基本上,它允许您自定义异常渗透到迫使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

您可能还需要查看the traceback module,以格式化您得到的回溯。

相关问题 更多 >