Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-pages.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJaime Martinez <jmartinez@gitlab.com>2021-07-07 05:19:48 +0300
committerJaime Martinez <jmartinez@gitlab.com>2021-07-07 05:19:48 +0300
commit86afc1dfeeb07fbc140d08ef8cdcfd8cbd4d7bcb (patch)
tree41a2d15d113a8dba2513ca42d9c82722d1c5892b /internal/logging/logging.go
parente74c91bfe5c95d6da82691e0c753cc50b661613c (diff)
Improve logging and correlation ID
Diffstat (limited to 'internal/logging/logging.go')
-rw-r--r--internal/logging/logging.go30
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)