32 lines
589 B
Go
32 lines
589 B
Go
package errors
|
|
|
|
import (
|
|
"allapp-go/internal/httpx"
|
|
"allapp-go/pkg/logger"
|
|
"errors"
|
|
"fmt"
|
|
|
|
"github.com/gofiber/fiber/v3"
|
|
"go.uber.org/zap"
|
|
)
|
|
|
|
func ErrorHandler() fiber.ErrorHandler {
|
|
return func(c fiber.Ctx, err error) error {
|
|
code := fiber.StatusInternalServerError
|
|
msg := "系统异常,请稍后再试!"
|
|
|
|
var e *fiber.Error
|
|
if errors.As(err, &e) {
|
|
code = e.Code
|
|
msg = e.Message
|
|
}
|
|
|
|
logger.FromCtx(c.Context()).Error("HTTP 请求异常",
|
|
zap.Int("status", code),
|
|
zap.String("error", fmt.Sprintf("%+v", err)),
|
|
)
|
|
|
|
return httpx.SystemError(c, msg)
|
|
}
|
|
}
|