【发布时间】:2019-02-09 05:14:16
【问题描述】:
我今天正在处理的遗留代码库中有几个 logging.warn('....') 调用。
我想更好地理解日志输出。到目前为止,logging.warn() 确实发出了一行。但是这一行还不足以理解上下文。
我想查看解释器的堆栈跟踪。
由于我的代码中有很多 logging.warn('....') 行,我想保留它们原样,只修改日志的配置。
如何将解释器堆栈跟踪自动添加到每个warn() 或error() 调用?
我知道logging.exception("message") 显示堆栈跟踪,但我想保持logging.warn() 行不变。
【问题讨论】:
-
我处理这个问题的方法是在
except子句中使用logging.exception("message")。 -
@TD-Asker 我更新了答案:我知道 logging.exception("message") 显示堆栈跟踪,但我想保持 logging.warn() 行不变。
-
我想你可能会遇到困难,因为
.warn()只会返回包含的字符串并且不知道堆栈跟踪。更改日志记录配置不会改变.warn()包含的知识。祝你好运,有人可能知道黑客/解决方法! -
@OzgurBagci:
warnings!=logging。虽然您可以同时对两者进行修补,但对于任何一个框架都有更好的选择。 -
这适用于哪个 Python 版本? Python 3.x 具有
stack_info标志,您可以轻松地强制使用它。
标签: python python-2.7 logging