2016-05-17 80 views
2

当引发异常被捕获到调用堆栈的根部时,我可以在Sentry中的每个调用堆栈层次上看到整个上下文。如何在乌鸦/哨兵中使用上下文记录完整的调用堆栈?

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

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

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

换句话说,我想在哨兵看到全堆栈跟踪和上下文记录的消息。

回答

4

Python的SDK具有通过使stack=True到captureMessage捕获任意踪迹的能力:

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

有另外一个auto_log_stacks值,可以配置客户端时被开启:

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

警告:自动记录堆栈很有用,但在某些常见情况下无法保证准确。这也是一个很小的表现,因为它必须不断地致电inspect.stack()