将Python异常信息转换为字符串以进行日志记录

5 投票
2 回答
3592 浏览
提问于 2025-04-15 13:28

我在用Python 2.5记录错误信息,但总是搞不定。所有的格式化函数都跟我想要的效果不一样。

我想出了这个办法:

def logexception(type, value, traceback):
  print traceback.format_exception(type, value, traceback)

sys.excepthook = logexception

但是在调用的时候却出现了参数错误,虽然根据文档说应该可以用。有没有人知道这是什么问题,或者有没有其他简单的解决办法?

2 个回答

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

这样做应该会好很多。

撰写回答