summaryrefslogtreecommitdiff
path: root/internal/server/middleware.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/server/middleware.go')
-rw-r--r--internal/server/middleware.go13
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"),
+ )
})
}