getsentry / raven-go

Sentry client in Go
https://sentry.io
BSD 3-Clause "New" or "Revised" License
561 stars 148 forks source link

Print the recovered value before dumping stack trace #110

Open kevinburke opened 8 years ago

kevinburke commented 8 years ago

Previously the RecoveryHandler would catch panics and log them to Sentry, but not log any information about the error to stderr, making it more difficult to debug than an ordinary panic. Instead, print a pseudo-panic header to stderr before printing the stack trace.

Stderr printed by the RecoveryHandler on a panic now looks like this:

panic: unknown property Region

goroutine 55 [running]:
runtime/debug.Stack(0x19, 0x0, 0x0)
    /Users/kevin/go/src/runtime/debug/stack.go:24 +0x79
runtime/debug.PrintStack()
    /Users/kevin/go/src/runtime/debug/stack.go:16 +0x22
github.com/saintpete/logrole/vendor/github.com/getsentry/raven-go.RecoveryHandler.func1.1(0xc420746e10, 0x791be0, 0xc4205d1e90)
    /Users/kevin/code/go/src/github.com/saintpete/logrole/vendor/github.com/getsentry/raven-go/http.go:100 +0x106
panic(0x46d760, 0xc4204d0210)
    /Users/kevin/go/src/runtime/panic.go:458 +0x243
text/template.errRecover(0xc4207a5248)
    /Users/kevin/go/src/text/template/exec.go:146 +0x18e

Fixes #109.