# HG changeset patch # User Christophe de Vienne <christophe@cdevienne.info> # Date 1639388433 -3600 # Mon Dec 13 10:40:33 2021 +0100 # Node ID d907e7ba03837e8b0112b27ad59981740c06f034 # Parent 2defe6a5a126875beea9790225e82d2b802e01ab panic handler: better report of errors Handling specifically the recovers when they implement the 'error' interface should give us a better 'value' field in the log message. diff --git a/panic_middleware.go b/panic_middleware.go --- a/panic_middleware.go +++ b/panic_middleware.go @@ -18,9 +18,12 @@ log := zerolog.Ctx(req.Context()) exc := zerolog.Dict(). - Str("value", fmt.Sprintf("%#v", r)). Str("type", fmt.Sprintf("%T", r)) - + if err, ok := r.(error); ok { + exc = exc.AnErr("value", err) + } else { + exc = exc.Str("value", fmt.Sprintf("%#v", r)) + } stack := sentry.NewStacktrace() stack.Frames = stack.Frames[:len(stack.Frames)-1] b, err := jsoniter.Marshal(stack)