From 9b6e79c40b98d8e36e4b7f5e1cc6f6a9f0feabbc Mon Sep 17 00:00:00 2001 From: JP Appel Date: Tue, 15 Oct 2024 23:56:02 -0400 Subject: Fix log middleware duplicating user --- middleware/log.go | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'middleware/log.go') diff --git a/middleware/log.go b/middleware/log.go index 4c4109c..9d3436f 100644 --- a/middleware/log.go +++ b/middleware/log.go @@ -8,12 +8,15 @@ import ( func Log(next http.Handler, logger *slog.Logger) http.Handler { return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + attrs := make([]slog.Attr, 0, 5) user, _, ok := r.BasicAuth() if ok { - logger = logger.With(slog.String("user", user)) + attrs = append(attrs, slog.String("user", user)) } - logger.InfoContext(r.Context(), "Recieved Request", slog.Group("request", "Address", r.RemoteAddr, "method", r.Method, "url", r.URL, "user agent", r.UserAgent)) + attrs = append(attrs, slog.Group("request", "Address", r.RemoteAddr, "method", r.Method, "url", r.URL)) + + logger.LogAttrs(r.Context(), slog.LevelInfo, "Recieved Request", attrs...) next.ServeHTTP(w, r) }) -- cgit v1.2.3