From 89d00dcba5515820021677a5234cdb3845301c98 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sybren=20A=2E=20St=C3=BCvel?= Date: Mon, 4 Apr 2022 16:57:41 +0200 Subject: [PATCH] Manager: use logger from context instead of constructing a new one This makes the logs more consistent, and any log that's bound to a HTTP request will have info about that request. --- internal/manager/api_impl/worker_auth.go | 10 ++++++++++ internal/manager/api_impl/zerolog.go | 14 ++------------ 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/internal/manager/api_impl/worker_auth.go b/internal/manager/api_impl/worker_auth.go index 499197ad..ba9bd173 100644 --- a/internal/manager/api_impl/worker_auth.go +++ b/internal/manager/api_impl/worker_auth.go @@ -9,6 +9,7 @@ import ( oapi_middle "github.com/deepmap/oapi-codegen/pkg/middleware" "github.com/getkin/kin-openapi/openapi3filter" "github.com/labstack/echo/v4" + "github.com/rs/zerolog" "golang.org/x/crypto/bcrypt" "git.blender.org/flamenco/internal/manager/persistence" @@ -63,6 +64,15 @@ func WorkerAuth(ctx context.Context, authInfo *openapi3filter.AuthenticationInpu func requestWorkerStore(e echo.Context, w *persistence.Worker) { req := e.Request() reqCtx := context.WithValue(req.Context(), workerKey, w) + + // Update the logger in this context to reflect the Worker. + l := zerolog.Ctx(reqCtx) + l.UpdateContext(func(c zerolog.Context) zerolog.Context { + return c. + Str("wUUID", w.UUID). + Str("wName", w.Name) + }) + e.SetRequest(req.WithContext(reqCtx)) } diff --git a/internal/manager/api_impl/zerolog.go b/internal/manager/api_impl/zerolog.go index d70a3dcb..6cf055bd 100644 --- a/internal/manager/api_impl/zerolog.go +++ b/internal/manager/api_impl/zerolog.go @@ -9,16 +9,6 @@ import ( ) func requestLogger(e echo.Context) zerolog.Logger { - logCtx := log.With(). - Str("remoteAddr", e.RealIP()). - Str("userAgent", e.Request().UserAgent()) - - worker := requestWorker(e) - if worker != nil { - logCtx = logCtx. - Str("wUUID", worker.UUID). - Str("wName", worker.Name) - } - - return logCtx.Logger() + logger := log.Ctx(e.Request().Context()) + return *logger }