fix(recovery): make recovery value printable

This commit is contained in:
OHZEKI Naoki 2025-06-05 22:07:27 +09:00
parent 6e9ce37efc
commit 4732fa7767

View File

@ -62,6 +62,8 @@ func CustomRecoveryWithWriter(out io.Writer, handle RecoveryFunc) HandlerFunc {
err, ok := rec.(error) err, ok := rec.(error)
if ok { if ok {
isBrokenPipeOrConnReset = errors.Is(err, syscall.EPIPE) || errors.Is(err, syscall.ECONNRESET) isBrokenPipeOrConnReset = errors.Is(err, syscall.EPIPE) || errors.Is(err, syscall.ECONNRESET)
} else {
err = fmt.Errorf("%v", rec)
} }
if logger != nil { if logger != nil {
stack := stack(3) stack := stack(3)
@ -75,13 +77,13 @@ func CustomRecoveryWithWriter(out io.Writer, handle RecoveryFunc) HandlerFunc {
} }
headersToStr := strings.Join(headers, "\r\n") headersToStr := strings.Join(headers, "\r\n")
if isBrokenPipeOrConnReset { if isBrokenPipeOrConnReset {
logger.Printf("%s\n%s%s", rec, headersToStr, reset) logger.Printf("%s\n%s%s", err, headersToStr, reset)
} else if IsDebugging() { } else if IsDebugging() {
logger.Printf("[Recovery] %s panic recovered:\n%s\n%s\n%s%s", 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 { } else {
logger.Printf("[Recovery] %s panic recovered:\n%s\n%s%s", 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 { if isBrokenPipeOrConnReset {