Python 如何在raven/sentry中使用上下文记录完整的调用堆栈?

Python 如何在raven/sentry中使用上下文记录完整的调用堆栈?,python,logging,sentry,raven,Python,Logging,Sentry,Raven,当在调用堆栈的根上捕获到引发的异常时,我可以在Sentry中看到调用堆栈的每个级别上的整个上下文 但是,当我使用captureMessage()时,我在Sentry中看不到任何上下文 如果我像下面的代码一样使用captureException(),我只能看到调用堆栈的顶部 try: raise Exception('Breakpoint!') except: raven_client.captureException() 换句话说,我希望在Sentry中看到一条带有完整stac

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

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

如果我像下面的代码一样使用captureException(),我只能看到调用堆栈的顶部

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

换句话说,我希望在Sentry中看到一条带有完整stacktrace和上下文的日志消息。

Python SDK能够通过向captureMessage传递
stack=True
来捕获任意stacktrace:

raven_client.captureMessage('hello world', stack=True)
另外还有一个
auto\u log\u stacks
值,在配置客户端时可以打开该值:

raven_client = Client(..., auto_log_stacks=True)
警告:自动记录堆栈很有用,但在某些常见情况下不能保证准确。这也是对性能的一个打击,尽管影响不大,因为它必须不断调用
inspect.stack()