将Python异常信息转换为字符串以进行日志记录
我在用Python 2.5记录错误信息,但总是搞不定。所有的格式化函数都跟我想要的效果不一样。
我想出了这个办法:
def logexception(type, value, traceback):
print traceback.format_exception(type, value, traceback)
sys.excepthook = logexception
但是在调用的时候却出现了参数错误,虽然根据文档说应该可以用。有没有人知道这是什么问题,或者有没有其他简单的解决办法?
2 个回答
-1
你可以使用 这个非常简单的日志记录方案
或者 这个方案
5
为什么这个 traceback
参数需要有一个和 traceback 模块中同名的 format_exception
方法呢?如果有这个方法,为什么它还需要把调用它的对象作为最后一个参数传进去呢?
我猜你只是想给第三个参数换个名字,这样就不会和 traceback 模块冲突,比如说:
import sys
import traceback
def logexception(type, value, tb):
print traceback.format_exception(type, value, tb)
sys.excepthook = logexception
这样做应该会好很多。