当我尝试使用 python 的日志记录模块时,它似乎会捕获异常并打印出错误,而不是让程序正常崩溃。
要初始化日志记录,我有这个:
logging.basicConfig(level=logging.DEBUG)
现在我得到了我所有的信息和警告消息,但除此之外,似乎当发生错误时,它会被捕获并打印为“错误”日志消息:
ERROR:root:'bool' object is not iterable
这给我带来了两个问题:
- 我看不到堆栈跟踪。
- 程序继续执行。
有没有办法禁用此行为,以便程序崩溃并显示堆栈跟踪,就好像我没有启用日志记录一样?
编辑
我是个白痴。捕获异常的不是日志记录。它是 websocket-client 模块。更具体地说,这些行:
except Exception, e:
self._run_with_no_err(self.on_error, e)
def _run_with_no_err(self, callback, *args):
if callback:
try:
callback(self, *args)
except Exception, e:
if logger.isEnabledFor(logging.DEBUG):
logger.error(e)
碰巧我在启用日志记录时注意到了这种行为并且认为两者没有连接。