如何在Python 3中记录带回溯的异常对象
我想知道在Python 3中,怎么用标准的logging模块来记录一个异常对象和它的追踪信息。
需要注意的是,这里提到的异常不一定是当前正在处理的那个。
2 个回答
0
老实说,我不知道这样做是否真的有帮助,但我找到了一些我觉得跟你问题相关的资料,希望对你有用。
http://www.alexconrad.org/2013/02/loggingexception.html
简单来说,如果你把 logging.exception() 放在一个异常处理的代码块里,那么你就可以记录下所有的错误信息。
5
日志记录器对象可以接受一个叫做 exc_info
的参数,用来包含异常信息(包括错误追踪信息)。这个参数应该是一个元组,里面包含了异常的类型、异常本身和异常的追踪信息。最难的部分是获取追踪信息,但从 Python 3.0 开始,异常对象有一个 __traceback__
属性,可以用来获取这些信息。
logger = logging.getLogger()
exc_info = (type(exc), exc, exc.__traceback__)
logger.error('Exception occurred', exc_info=exc_info)