Sym*_*mon 3 python logging sentry raven
当在调用堆栈的根部捕获引发的异常时,我可以在 Sentry 中看到调用堆栈每个级别的整个上下文。
但是,当我使用 captureMessage() 时,我在 Sentry 中看不到任何上下文。
如果我像下面的代码一样使用 captureException() ,我只能看到调用堆栈的顶部。
try:
raise Exception('Breakpoint!')
except:
raven_client.captureException()
Run Code Online (Sandbox Code Playgroud)
换句话说,我想在 Sentry 中看到带有完整堆栈跟踪和上下文的记录消息。
Python SDK 能够通过传递stack=True给 captureMessage 来捕获任意堆栈跟踪:
raven_client.captureMessage('hello world', stack=True)
Run Code Online (Sandbox Code Playgroud)
auto_log_stacks配置客户端时还可以打开一个值:
raven_client = Client(..., auto_log_stacks=True)
Run Code Online (Sandbox Code Playgroud)
警告:自动记录堆栈很有用,但在某些常见情况下不能保证准确。这也会对性能造成影响,尽管影响很小,因为它必须不断地调用inspect.stack().