使用exc_info的log.exception错误

时间:2017-09-26 16:12:03

标签: python logging

如何在运行时为支持exc_info密钥修补日志记录?

示例:

log.exception(e, exc_info = 1)

返回错误:

TypeError: exception() got an unexpected keyword argument 'exc_info' 

这是在Python 2.6.6

2 个答案:

答案 0 :(得分:0)

使用追溯 https://docs.python.org/2/library/traceback.html

Traceback将打印异常并显示代码导致异常的堆栈跟踪

import traceback
_traceback = traceback.format_exc()
print _traceback
log.exception(_traceback)

答案 1 :(得分:0)

exception方法是不接受exc_info的单一方法,因为它是从需要记录异常的异常子句中调用的(即exc_info隐式设置)。如果您希望将exc_info设置为False具有相同的效果,请使用记录器的error方法而不是exception方法。来自the documentation

  

Logger.error(msg,* args,** kwargs)

     

在此记录器上记录级别为ERROR的消息。参数解释为debug()。

     

...

     

Logger.exception(msg,* args,** kwargs)

     

在此记录器上记录级别为ERROR的消息。参数被解释为debug()。异常信息将添加到日志消息中。只应从异常处理程序调用此方法。