From 783b352e3b102abbd143514b5ed4e7231df5b552 Mon Sep 17 00:00:00 2001 From: yusing Date: Wed, 18 Dec 2024 08:01:58 +0800 Subject: [PATCH] fixed json access logger --- internal/net/http/accesslog/fields.go | 2 +- internal/net/http/accesslog/formatter.go | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/internal/net/http/accesslog/fields.go b/internal/net/http/accesslog/fields.go index 4b3d498..7ad85c7 100644 --- a/internal/net/http/accesslog/fields.go +++ b/internal/net/http/accesslog/fields.go @@ -41,7 +41,7 @@ func processMap[V any](cfg *FieldConfig, m map[string]V, redactedV V) map[string return m } - newMap := make(map[string]V) + newMap := make(map[string]V, len(m)) for k := range m { var mode FieldMode var ok bool diff --git a/internal/net/http/accesslog/formatter.go b/internal/net/http/accesslog/formatter.go index d3ea269..1851f28 100644 --- a/internal/net/http/accesslog/formatter.go +++ b/internal/net/http/accesslog/formatter.go @@ -123,6 +123,11 @@ func (f JSONFormatter) Format(line *bytes.Buffer, req *http.Request, res *http.R entry.Error = res.Status } + if entry.ContentType != "" { + // try to get content type from request + entry.ContentType = req.Header.Get("Content-Type") + } + marshaller := json.NewEncoder(line) err := marshaller.Encode(entry) if err != nil {