package main import ( "fmt" "log/slog" "net/http" "time" ) type Middleware = func(http.HandlerFunc) http.HandlerFunc func LoggingMiddleware(f http.HandlerFunc) http.HandlerFunc { return func(w http.ResponseWriter, r *http.Request) { start := time.Now() f(w, r) slog.Info(fmt.Sprintf("%s - %s (%dms)", r.Method, r.URL, time.Now().Sub(start).Milliseconds())) } }