33 lines
695 B
Go
33 lines
695 B
Go
|
package middleware
|
||
|
|
||
|
import (
|
||
|
"github.com/labstack/echo/v4"
|
||
|
echoMiddleware "github.com/labstack/echo/v4/middleware"
|
||
|
"go.uber.org/zap"
|
||
|
)
|
||
|
|
||
|
type LoggerMiddleware struct {
|
||
|
logger *zap.Logger
|
||
|
}
|
||
|
|
||
|
func NewLoggerMiddleware(logger *zap.Logger) *LoggerMiddleware {
|
||
|
return &LoggerMiddleware{
|
||
|
logger: logger,
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func (l *LoggerMiddleware) Handler() echo.MiddlewareFunc {
|
||
|
return echoMiddleware.RequestLoggerWithConfig(echoMiddleware.RequestLoggerConfig{
|
||
|
LogURI: true,
|
||
|
LogStatus: true,
|
||
|
LogValuesFunc: func(c echo.Context, v echoMiddleware.RequestLoggerValues) error {
|
||
|
l.logger.Info("request",
|
||
|
zap.String("URI", v.URI),
|
||
|
zap.Int("status", v.Status),
|
||
|
)
|
||
|
|
||
|
return nil
|
||
|
},
|
||
|
})
|
||
|
}
|