如何在Python 3中使用traceback记录异常对象

时间:2014-07-21 12:16:37

标签: python exception logging python-3.x

如何使用标准logging模块在​​Python 3中使用其回溯记录异常对象?

请注意,有问题的异常不一定是当前正在处理的异常。

2 个答案:

答案 0 :(得分:3)

Logger对象接受exc_info参数以包含异常信息(包括回溯),该异常信息应该是包含异常类,异常本身和异常回溯的元组。最棘手的部分是获取追溯,但事实证明,自Python 3.0起,exceptions have a __traceback__ attribute

logger = logging.getLogger()
exc_info = (type(exc), exc, exc.__traceback__)
logger.error('Exception occurred', exc_info=exc_info)

答案 1 :(得分:0)

老实说,我不知道我是否通过这样做有所贡献,但我确实找到了我认为与你的问题相关的资源,我希望有用。

http://www.alexconrad.org/2013/02/loggingexception.html

它的要点是,如果将logging.exception()放在except块中,那么您可以记录所有错误。