fix stacktrace logging
This commit is contained in:
parent
b42fa38e31
commit
8624a87328
@ -256,7 +256,11 @@ func logPanicToWriter(w io.Writer, loggedError error) {
|
||||
w.Write(ErrorBuffer.Bytes())
|
||||
fmt.Fprintln(w)
|
||||
|
||||
fmt.Fprintf(w, "%+v\n", loggedError)
|
||||
fmt.Fprintf(w, "%s\n", loggedError)
|
||||
for _, stackline := range errors.StackTrace(loggedError) {
|
||||
fmt.Fprintln(w, stackline)
|
||||
}
|
||||
|
||||
for key, val := range errors.ErrorContext(err) {
|
||||
fmt.Fprintf(w, "%s=%v\n", key, val)
|
||||
}
|
||||
|
@ -83,3 +83,20 @@ func Wrapf(err error, format string, args ...interface{}) error {
|
||||
|
||||
return newWrappedError(err, message)
|
||||
}
|
||||
|
||||
func StackTrace(err error) []string {
|
||||
type stacktrace interface {
|
||||
StackTrace() errors.StackTrace
|
||||
}
|
||||
|
||||
if err, ok := err.(stacktrace); ok {
|
||||
frames := err.StackTrace()
|
||||
lines := make([]string, len(frames))
|
||||
for i, f := range frames {
|
||||
lines[i] = fmt.Sprintf("%+v", f)
|
||||
}
|
||||
return lines
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user