diff options
Diffstat (limited to 'internal/server/middleware.go')
| -rw-r--r-- | internal/server/middleware.go | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/internal/server/middleware.go b/internal/server/middleware.go index fe51224..c88131c 100644 --- a/internal/server/middleware.go +++ b/internal/server/middleware.go @@ -1,8 +1,9 @@ package server import ( - "log" + "log/slog" "net/http" + "time" ) type statusRecorder struct { @@ -17,8 +18,16 @@ func (r *statusRecorder) WriteHeader(code int) { func logRequests(next http.Handler) http.Handler { return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + start := time.Now() recorder := &statusRecorder{ResponseWriter: w, status: http.StatusOK} next.ServeHTTP(recorder, r) - log.Printf("[%s] %s - %s: %d", r.Method, r.RequestURI, r.RemoteAddr, recorder.status) + slog.Info("request", + "method", r.Method, + "path", r.URL.Path, + "status", recorder.status, + "duration", time.Since(start), + "remote", r.RemoteAddr, + "x-forwarded-for", r.Header.Get("x-forwarded-for"), + ) }) } |
