2016-05-17 3 views
2

Wenn ausgelöst Ausnahme auf der Wurzel von Call-Stack gefangen ist, kann ich den gesamten Kontext auf jeder Ebene des Call-Stack in Sentry sehen.Wie logst du den gesamten Call-Stack mit Kontext in Raven/Sentry?

Aber, wenn ich captureMessage() verwende, kann ich keinen Kontext in Sentry sehen.

Wenn ich captureException() wie im folgenden Code verwenden, kann ich nur die Spitze des Call-Stack sehen.

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

Mit anderen Worten: Ich möchte in Sentry eine protokollierte Nachricht mit voller Stacktrace und Kontext sehen.

Antwort

4

Der Python-SDK hat die Fähigkeit, beliebigen stacktraces zu erfassen, indem stack=True zu captureMessage vorbei:

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

Es gibt zusätzlich einen auto_log_stacks Wert, der eingeschaltet werden kann, wenn die Client-Konfiguration:

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

Vorbehalt: Das automatische Protokollieren von Stapeln ist nützlich, aber in einigen häufigen Situationen ist es nicht garantiert. Es ist auch ein Performance-Hit, wenn auch ein kleiner, wie es ständig auf inspect.stack() rufen muss.

Verwandte Themen