如何在 raven/sentry 中记录带有上下文的完整调用堆栈?
How to log full call-stack with context in raven/sentry?
当在调用堆栈的根上捕获引发的异常时,我可以在 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()
.
当在调用堆栈的根上捕获引发的异常时,我可以在 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()
.