diff --git a/log/wideevent_logger.go b/log/wideevent_logger.go index fef2503..2350674 100644 --- a/log/wideevent_logger.go +++ b/log/wideevent_logger.go @@ -19,8 +19,6 @@ const ( simpleLogEventName = "log.record" ) -var _ logger = (*WideEventLogger)(nil) - // NewWideEventLogger creates a wide-event logger. func NewWideEventLogger(w io.Writer, s Sampler, loggerType string, contextKeys map[string]any) *WideEventLogger { // If no sampler provided, use a keep-all sampler to prevent nil panics diff --git a/scheduler/scheduler.go b/scheduler/scheduler.go index b0a8a2b..8f5ffb1 100644 --- a/scheduler/scheduler.go +++ b/scheduler/scheduler.go @@ -5,6 +5,7 @@ import ( "context" "errors" "fmt" + "log/slog" "time" "github.com/platforma-dev/platforma/application" @@ -77,16 +78,17 @@ func (s *Scheduler) Run(ctx context.Context) error { // Wrap runner to maintain consistent logging with trace IDs _, err := cronScheduler.AddFunc(s.cronExpr, func() { + event := log.NewEvent("scheduler.task.run") + runCtx := context.WithValue(ctx, log.TraceIDKey, uuid.NewString()) - log.InfoContext(runCtx, "scheduler task started") + runCtx = context.WithValue(runCtx, log.WideEventKey, event) + + event.AddStep(slog.LevelInfo, "scheduler task started") err := s.runner.Run(runCtx) - if err != nil { - log.ErrorContext(runCtx, "error in scheduler", "error", err) - return - } + event.AddError(err) - log.InfoContext(runCtx, "scheduler task finished") + event.AddStep(slog.LevelInfo, "scheduler task finished") }) if err != nil { return fmt.Errorf("failed to add cron task: %w", err)