Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

22 рядки
452B

  1. package middleware
  2. import (
  3. "log/slog"
  4. "net/http"
  5. "time"
  6. )
  7. func RequestLogger(logger *slog.Logger) func(http.Handler) http.Handler {
  8. return func(next http.Handler) http.Handler {
  9. return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
  10. start := time.Now()
  11. next.ServeHTTP(w, r)
  12. logger.Info("http request",
  13. "method", r.Method,
  14. "path", r.URL.Path,
  15. "duration_ms", time.Since(start).Milliseconds(),
  16. )
  17. })
  18. }
  19. }