如何使用标准logging模块在Python 3中使用其回溯记录异常对象?
请注意,有问题的异常不一定是当前正在处理的异常。
答案 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块中,那么您可以记录所有错误。