diff options
author | Kwonunn <kwonunnx@gmail.com> | 2024-10-28 08:58:35 +0100 |
---|---|---|
committer | Kwonunn <kwonunn@noreply.code.forgejo.org> | 2024-11-03 14:57:34 +0100 |
commit | 6c9959d7a96a7876f3c51f834f3a11d98eca621e (patch) | |
tree | 29e0f34fdd49f25302133f913882514e11726cec | |
parent | Merge pull request 'feat: add configurable logging level for jobs' (#299) fro... (diff) | |
download | forgejo-runner-6c9959d7a96a7876f3c51f834f3a11d98eca621e.tar.xz forgejo-runner-6c9959d7a96a7876f3c51f834f3a11d98eca621e.zip |
Cherry-pick gitea act_runner #543
From: https://gitea.com/gitea/act_runner/commit/1735b26e66f8e81c526204c128f1bcfd7f578906
Don't log job output when debug logging is not enabled
We wanted the ability to disable outputting the logs from the individual job to the console. This changes the logging so that job logs are only output to the console whenever debug logging is enabled in `act_runner`, while still allowing the `Reporter` to receive these logs and forward them to Gitea when debug logging is not enabled.
Signed-off-by: Kwonunn <kwonunnx@gmail.com>
-rw-r--r-- | internal/app/run/logging.go | 24 | ||||
-rw-r--r-- | internal/app/run/runner.go | 4 |
2 files changed, 28 insertions, 0 deletions
diff --git a/internal/app/run/logging.go b/internal/app/run/logging.go new file mode 100644 index 0000000..d0e6d1c --- /dev/null +++ b/internal/app/run/logging.go @@ -0,0 +1,24 @@ +// Copyright 2024 The Gitea Authors. All rights reserved. +// SPDX-License-Identifier: MIT + +package run + +import ( + "io" + + log "github.com/sirupsen/logrus" +) + +// NullLogger is used to create a new JobLogger to discard logs. This +// will prevent these logs from being logged to the stdout, but +// forward them to the Reporter via its hook. +type NullLogger struct{} + +// WithJobLogger creates a new logrus.Logger that will discard all logs. +func (n NullLogger) WithJobLogger() *log.Logger { + logger := log.New() + logger.SetOutput(io.Discard) + logger.SetLevel(log.TraceLevel) + + return logger +} diff --git a/internal/app/run/runner.go b/internal/app/run/runner.go index e774786..9eaf37e 100644 --- a/internal/app/run/runner.go +++ b/internal/app/run/runner.go @@ -252,6 +252,10 @@ func (r *Runner) run(ctx context.Context, task *runnerv1.Task, reporter *report. // add logger recorders ctx = common.WithLoggerHook(ctx, reporter) + if !log.IsLevelEnabled(log.DebugLevel) { + ctx = runner.WithJobLoggerFactory(ctx, NullLogger{}) + } + execErr := executor(ctx) reporter.SetOutputs(job.Outputs) return execErr |