30 lines
600 B
Go
30 lines
600 B
Go
package middleware
|
|
|
|
import (
|
|
"base-go-v2/internal/logx"
|
|
"base-go-v2/internal/reponse"
|
|
"base-go-v2/internal/router"
|
|
"runtime/debug"
|
|
)
|
|
|
|
func ErrorMiddleware() router.HandlerFunc {
|
|
return func(c *router.Context) error {
|
|
err := c.Next()
|
|
|
|
if err != nil {
|
|
stack := string(debug.Stack())
|
|
|
|
logx.Logger.Error("请求错误",
|
|
logx.String("path", string(c.RequestCtx.Path())),
|
|
logx.String("method", string(c.RequestCtx.Method())),
|
|
logx.String("error", err.Error()),
|
|
logx.String("stack", stack),
|
|
)
|
|
|
|
return response.Error(c).Message(err.Error()).Send()
|
|
}
|
|
|
|
return nil
|
|
}
|
|
}
|