Files
3ybactuk-marketplace-go-ser…/cart/internal/infra/http/middlewares/time_middleware.go
Никита Шубин 5077f04b0c [hw-1] implement cart service
2025-05-25 15:49:17 +00:00

27 lines
453 B
Go

package middlewares
import (
"net/http"
"time"
"github.com/rs/zerolog/log"
)
type TimerMiddleware struct {
h http.Handler
}
func NewTimerMiddleware(h http.Handler) http.Handler {
return &TimerMiddleware{
h: h,
}
}
func (m *TimerMiddleware) ServeHTTP(w http.ResponseWriter, r *http.Request) {
defer func(now time.Time) {
log.Debug().Msgf("%s %s spent %s", r.Method, r.URL.String(), time.Since(now))
}(time.Now())
m.h.ServeHTTP(w, r)
}