From 86d6f2cfcbbd4937c5340a0995fe826b167ebb84 Mon Sep 17 00:00:00 2001 From: Helmut Merz Date: Wed, 28 Jun 2023 11:21:28 +0200 Subject: [PATCH] work in progress: logging: setting up context-dependent events --- lib/core/core.go | 7 +++---- logging/event.go | 19 +++++++++++++++++++ logging/logging.go | 16 ++++++---------- 3 files changed, 28 insertions(+), 14 deletions(-) create mode 100644 logging/event.go diff --git a/lib/core/core.go b/lib/core/core.go index b0d7941..a73a255 100644 --- a/lib/core/core.go +++ b/lib/core/core.go @@ -4,11 +4,11 @@ import ( "git.sr.ht/~cco/go-scopes/config" "git.sr.ht/~cco/go-scopes/lib" "git.sr.ht/~cco/go-scopes/lib/action" - "git.sr.ht/~cco/go-scopes/logging/log" + "git.sr.ht/~cco/go-scopes/logging" ) func Start(ctx lib.Context) { - log.Debug().Str("service", ctx.Config().Name()).Msg("core.Start") + logging.Debug(ctx).Msg("core.Start") lib.RunCtx(ctx, Listen) } @@ -32,8 +32,7 @@ func Step(ctx lib.Context) (loop bool) { func HandleMessage(ctx lib.Context, msg lib.Message) (loop bool) { loop = true - log.Debug().Str("service", ctx.Config().Name()).Str("msg.action", msg.Action()). - Msg("core.HandleMessage") + logging.Debug(ctx).Str("msg.action", msg.Action()).Msg("core.HandleMessage") for _, act := range action.Select(ctx, msg) { loop = act.Handle() } diff --git a/logging/event.go b/logging/event.go new file mode 100644 index 0000000..76c46ec --- /dev/null +++ b/logging/event.go @@ -0,0 +1,19 @@ +package logging + +import ( + "git.sr.ht/~cco/go-scopes/lib" + "github.com/rs/zerolog" +) + +type Evt = zerolog.Event + +func Debug(ctx lib.Context) *Evt { + return WithContext(ctx, GetLogger(ctx).Debug()) +} + +func WithContext(ctx lib.Context, e *Evt) *Evt { + if e == nil || ctx == nil { + return e + } + return e.Str("service", ctx.Config().Name()) +} diff --git a/logging/logging.go b/logging/logging.go index a5a93cf..375c469 100644 --- a/logging/logging.go +++ b/logging/logging.go @@ -19,7 +19,12 @@ const ( ErrorLevel = zerolog.ErrorLevel ) -var Levels = map[string]zerolog.Level{} +var Levels = map[string]zerolog.Level{ + "debug": DebugLevel, + "info": InfoLevel, + "warn": WarnLevel, + "error": ErrorLevel, +} type Logger = zerolog.Logger @@ -84,12 +89,3 @@ func Parse(rec string) map[string]interface{} { } return buf } - -// set up static data - -func init() { - Levels["debug"] = DebugLevel - Levels["info"] = InfoLevel - Levels["warn"] = WarnLevel - Levels["error"] = ErrorLevel -}