From 4732fa776706f5a6f8f87cdc9ccc2ad1bd16e6e6 Mon Sep 17 00:00:00 2001 From: OHZEKI Naoki <0h23k1.n40k1@gmail.com> Date: Thu, 5 Jun 2025 22:07:27 +0900 Subject: [PATCH] fix(recovery): make recovery value printable --- recovery.go | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/recovery.go b/recovery.go index f8e9583a..0d4024e0 100644 --- a/recovery.go +++ b/recovery.go @@ -62,6 +62,8 @@ func CustomRecoveryWithWriter(out io.Writer, handle RecoveryFunc) HandlerFunc { err, ok := rec.(error) if ok { isBrokenPipeOrConnReset = errors.Is(err, syscall.EPIPE) || errors.Is(err, syscall.ECONNRESET) + } else { + err = fmt.Errorf("%v", rec) } if logger != nil { stack := stack(3) @@ -75,13 +77,13 @@ func CustomRecoveryWithWriter(out io.Writer, handle RecoveryFunc) HandlerFunc { } headersToStr := strings.Join(headers, "\r\n") if isBrokenPipeOrConnReset { - logger.Printf("%s\n%s%s", rec, headersToStr, reset) + logger.Printf("%s\n%s%s", err, headersToStr, reset) } else if IsDebugging() { logger.Printf("[Recovery] %s panic recovered:\n%s\n%s\n%s%s", - timeFormat(time.Now()), headersToStr, rec, stack, reset) + timeFormat(time.Now()), headersToStr, err, stack, reset) } else { logger.Printf("[Recovery] %s panic recovered:\n%s\n%s%s", - timeFormat(time.Now()), rec, stack, reset) + timeFormat(time.Now()), err, stack, reset) } } if isBrokenPipeOrConnReset {