3

当在调用堆栈的根上捕获引发的异常时,我可以在 Sentry 中的每个调用堆栈级别看到整个上下文。

但是,当我使用 captureMessage() 时,我在 Sentry 中看不到任何上下文。

如果我在下面的代码中使用 captureException(),我只能看到调用堆栈的顶部。

try:
    raise Exception('Breakpoint!')
except:
    raven_client.captureException()

换句话说,我想在 Sentry 中看到带有完整堆栈跟踪和上下文的记录消息。

4

1 回答 1

5

Python SDK 能够通过传递stack=True给 captureMessage 来捕获任意堆栈跟踪:

raven_client.captureMessage('hello world', stack=True)

配置客户端时还有一个auto_log_stacks值可以打开:

raven_client = Client(..., auto_log_stacks=True)

警告:自动记录堆栈很有用,但在某些常见情况下不能保证准确。这也是一个性能打击,虽然是一个小问题,因为它必须不断地调用inspect.stack().

于 2016-05-17T14:06:28.530 回答