diff options
author | Jaime Martinez <jmartinez@gitlab.com> | 2021-07-07 05:19:48 +0300 |
---|---|---|
committer | Jaime Martinez <jmartinez@gitlab.com> | 2021-07-07 05:19:48 +0300 |
commit | 86afc1dfeeb07fbc140d08ef8cdcfd8cbd4d7bcb (patch) | |
tree | 41a2d15d113a8dba2513ca42d9c82722d1c5892b /internal/logging/logging.go | |
parent | e74c91bfe5c95d6da82691e0c753cc50b661613c (diff) |
Improve logging and correlation ID
Diffstat (limited to 'internal/logging/logging.go')
-rw-r--r-- | internal/logging/logging.go | 30 |
1 files changed, 19 insertions, 11 deletions
diff --git a/internal/logging/logging.go b/internal/logging/logging.go index 10705a9a..4ffbeb4b 100644 --- a/internal/logging/logging.go +++ b/internal/logging/logging.go @@ -82,23 +82,31 @@ func BasicAccessLogger(handler http.Handler, format string, extraFields log.Extr return nil, err } - if extraFields == nil { - extraFields = func(r *http.Request) log.Fields { - return log.Fields{ - "correlation_id": correlation.ExtractFromContext(r.Context()), - "pages_https": request.IsHTTPS(r), - "pages_host": r.Host, - } - } - } - return log.AccessLogger(handler, - log.WithExtraFields(extraFields), + log.WithExtraFields(enrichExtraFields(extraFields)), log.WithAccessLogger(accessLogger), log.WithXFFAllowed(func(sip string) bool { return false }), ), nil } +func enrichExtraFields(extraFields log.ExtraFieldsGeneratorFunc) log.ExtraFieldsGeneratorFunc { + return func(r *http.Request) log.Fields { + enrichedFields := log.Fields{ + "correlation_id": correlation.ExtractFromContext(r.Context()), + "pages_https": request.IsHTTPS(r), + "pages_host": r.Host, + } + + if extraFields != nil { + for field, value := range extraFields(r) { + enrichedFields[field] = value + } + } + + return enrichedFields + } +} + // AccessLogger configures the GitLab pages HTTP access logger middleware with extra log fields func AccessLogger(handler http.Handler, format string) (http.Handler, error) { return BasicAccessLogger(handler, format, getExtraLogFields) |