summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKwonunn <kwonunnx@gmail.com>2024-10-28 08:58:35 +0100
committerKwonunn <kwonunn@noreply.code.forgejo.org>2024-11-03 14:57:34 +0100
commit6c9959d7a96a7876f3c51f834f3a11d98eca621e (patch)
tree29e0f34fdd49f25302133f913882514e11726cec
parentMerge pull request 'feat: add configurable logging level for jobs' (#299) fro... (diff)
downloadforgejo-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.go24
-rw-r--r--internal/app/run/runner.go4
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