From 1113f53ea205cd3b7028671560f55ee8ba51335b Mon Sep 17 00:00:00 2001 From: Samuel Berthe Date: Mon, 12 Feb 2024 12:04:46 +0100 Subject: [PATCH] fix: dedup "headers" attribute --- middleware.go | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/middleware.go b/middleware.go index 34abb80..f804835 100644 --- a/middleware.go +++ b/middleware.go @@ -177,12 +177,16 @@ func NewWithConfig(logger *slog.Logger, config Config) gin.HandlerFunc { // request headers if config.WithRequestHeader { + kv := []any{} + for k, v := range c.Request.Header { if _, found := HiddenRequestHeaders[strings.ToLower(k)]; found { continue } - requestAttributes = append(requestAttributes, slog.Group("header", slog.Any(k, v))) + kv = append(kv, slog.Any(k, v)) } + + requestAttributes = append(requestAttributes, slog.Group("header", kv...)) } if config.WithUserAgent { @@ -197,12 +201,16 @@ func NewWithConfig(logger *slog.Logger, config Config) gin.HandlerFunc { // response headers if config.WithResponseHeader { + kv := []any{} + for k, v := range c.Writer.Header() { if _, found := HiddenResponseHeaders[strings.ToLower(k)]; found { continue } - responseAttributes = append(responseAttributes, slog.Group("header", slog.Any(k, v))) + kv = append(kv, slog.Any(k, v)) } + + responseAttributes = append(responseAttributes, slog.Group("header", kv...)) } attributes := append(