From c10ecbc6b21ab8c28887430123440968399f8118 Mon Sep 17 00:00:00 2001 From: Markus Wolf Date: Mon, 14 Mar 2022 18:38:30 +0100 Subject: [PATCH] feat: add step name to logger field (#1027) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat: add step name to logger field This change does add the step name to the logger fields. This does not change the output for our users, but for the json logger, it does make each step output traceable. * fix: remove new logger Since logrus and context both are immutable for our case, we can just add a new field and store the logger in the context. Co-authored-by: Casey Lee Co-authored-by: Björn Brauer --- act/runner/job_executor.go | 21 ++++++++++++--------- act/runner/logger.go | 5 +++++ 2 files changed, 17 insertions(+), 9 deletions(-) diff --git a/act/runner/job_executor.go b/act/runner/job_executor.go index 3d86a8e1..0c8cdb41 100644 --- a/act/runner/job_executor.go +++ b/act/runner/job_executor.go @@ -37,15 +37,18 @@ func newJobExecutor(info jobInfo) common.Executor { } stepExec := info.newStepExecutor(step) steps = append(steps, func(ctx context.Context) error { - err := stepExec(ctx) - if err != nil { - common.Logger(ctx).Errorf("%v", err) - common.SetJobError(ctx, err) - } else if ctx.Err() != nil { - common.Logger(ctx).Errorf("%v", ctx.Err()) - common.SetJobError(ctx, ctx.Err()) - } - return nil + stepName := step.String() + return (func(ctx context.Context) error { + err := stepExec(ctx) + if err != nil { + common.Logger(ctx).Errorf("%v", err) + common.SetJobError(ctx, err) + } else if ctx.Err() != nil { + common.Logger(ctx).Errorf("%v", ctx.Err()) + common.SetJobError(ctx, ctx.Err()) + } + return nil + })(withStepLogger(ctx, stepName)) }) } diff --git a/act/runner/logger.go b/act/runner/logger.go index 7949b4b5..348f185c 100644 --- a/act/runner/logger.go +++ b/act/runner/logger.go @@ -72,6 +72,11 @@ func WithJobLogger(ctx context.Context, jobName string, config *Config, masks *[ return common.WithLogger(ctx, rtn) } +func withStepLogger(ctx context.Context, stepName string) context.Context { + rtn := common.Logger(ctx).WithFields(logrus.Fields{"step": stepName}) + return common.WithLogger(ctx, rtn) +} + type entryProcessor func(entry *logrus.Entry) *logrus.Entry func valueMasker(insecureSecrets bool, secrets map[string]string, masks *[]string) entryProcessor {