【发布时间】:2014-09-11 22:42:12
【问题描述】:
如何在 Python 3 中使用标准 logging 模块记录异常对象及其回溯?
请注意,有问题的异常不一定是当前正在处理的异常。
【问题讨论】:
标签: python exception logging python-3.x
如何在 Python 3 中使用标准 logging 模块记录异常对象及其回溯?
请注意,有问题的异常不一定是当前正在处理的异常。
【问题讨论】:
标签: python exception logging python-3.x
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)
【讨论】:
sys.exc_info() 获取当前正在处理的异常的回溯。
logger.error('Exception occurred', exc_info=exc)。 Python 本身将 extract exception type/traceback info.
老实说,我不知道这样做是否有任何贡献,但我确实找到了我认为与您的问题相关的资源,希望对您有用。
http://www.alexconrad.org/2013/02/loggingexception.html
它的要点是,如果您将 logging.exception() 放在 except 块内,那么您可以记录所有错误。
【讨论】: