Files
0451meishi/backend/internal/middleware/recover.go
2026-01-15 11:37:22 +08:00

28 lines
564 B
Go

package middleware
import (
"net/http"
"0451meishiditu/backend/internal/logger"
"0451meishiditu/backend/internal/resp"
"github.com/gin-gonic/gin"
"go.uber.org/zap"
)
func Recover(log *zap.Logger) gin.HandlerFunc {
return gin.CustomRecovery(func(c *gin.Context, recovered interface{}) {
log.Error("panic recovered", logger.Str("recovered", toString(recovered)))
resp.Fail(c, http.StatusInternalServerError, "internal error")
})
}
func toString(v interface{}) string {
switch t := v.(type) {
case string:
return t
default:
return "panic"
}
}