当引发的异常在调用堆栈的根部被捕获时,我可以在 Sentry 中看到调用堆栈的每个级别的整个上下文。
但是,当我使用 captureMessage() 时,我在 Sentry 中看不到任何上下文。
如果我在下面的代码中使用 captureException(),我只能看到调用堆栈的顶部。
try:
raise Exception('Breakpoint!')
except:
raven_client.captureException()
换句话说,我想在 Sentry 中看到一条包含完整堆栈跟踪和上下文的记录消息。
最佳答案
Python SDK 能够通过将 stack=True
传递给 captureMessage 来捕获任意堆栈跟踪:
raven_client.captureMessage('hello world', stack=True)
还有一个 auto_log_stacks
值可以在配置客户端时打开:
raven_client = Client(..., auto_log_stacks=True)
警告:自动记录堆栈很有用,但在某些常见情况下不能保证准确。这也是对性能的影响,尽管影响很小,因为它必须不断调用 inspect.stack()
。
关于python - 如何在 raven/sentry 中记录带有上下文的完整调用堆栈?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37270893/