api-platform/internal/handler/http/middleware/zap_logger.go

33 lines
695 B
Go
Raw Normal View History

2024-11-21 11:25:32 +00:00
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
},
})
}