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 }, }) }