diff --git a/coderd/httpmw/loggermw/logger.go b/coderd/httpmw/loggermw/logger.go index 94c681cf22..d6850e31c4 100644 --- a/coderd/httpmw/loggermw/logger.go +++ b/coderd/httpmw/loggermw/logger.go @@ -80,6 +80,7 @@ func Logger(log slog.Logger) func(next http.Handler) http.Handler { } httplog := log.With( + slog.F("user_agent", r.Header.Get("User-Agent")), slog.F("host", httpapi.RequestHost(r)), slog.F("path", r.URL.Path), slog.F("proto", r.Proto), diff --git a/coderd/httpmw/loggermw/logger_internal_test.go b/coderd/httpmw/loggermw/logger_internal_test.go index 150a773c5c..5d44b6c9e7 100644 --- a/coderd/httpmw/loggermw/logger_internal_test.go +++ b/coderd/httpmw/loggermw/logger_internal_test.go @@ -90,7 +90,7 @@ func TestLoggerMiddleware_SingleRequest(t *testing.T) { } // Check that the log contains the expected fields - requiredFields := []string{"host", "path", "proto", "remote_addr", "start", "took", "status_code", "latency_ms"} + requiredFields := []string{"host", "path", "proto", "remote_addr", "start", "took", "status_code", "user_agent", "latency_ms"} for _, field := range requiredFields { _, exists := fieldsMap[field] require.True(t, exists, "field %q is missing in log fields", field)