编程语言
首页 > 编程语言> > Python错误记录

Python错误记录

作者:互联网

我想找到一种方法来记录强制python解释器退出的每个错误,以便保存到文件以及打印到屏幕上.我想这样做的原因是我想在编写代码时保留我所犯错误类型的统计数据,着眼于寻找避免将来常犯的错误的方法.

我一直试图通过使用子进程模块为python解释器编写包装器来做到这一点.基本上,它运行python解释器,捕获任何输出,解析并将其保存到文件,打印输出,并使用matplotlib来制作一些摘要数字.但是,我在实时从包装器脚本获取输出时遇到问题.例如,如果我正在运行的脚本是:

import os  
import time

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

我正在使用带有p.communicate()的subprocess.Popen(),包装器将等待100秒,然后打印所有输出.我希望包装器尽可能不可见 – 理想情况下,它会在每十秒钟打印一次“测试”.

如果有人能指出我这样做的好方法,我会非常感激.

谢谢!

解决方法:

我相信你可以简单地用你自己的函数替换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,以便格式化您获得的回溯.

标签:python,error-logging
来源: https://codeday.me/bug/20190827/1737361.html