From 58a17897cffc2083d9a4b6b5f8ff27c2d009f108 Mon Sep 17 00:00:00 2001 From: Igor Gov Date: Tue, 22 Feb 2022 14:02:51 +0200 Subject: [PATCH] Agent logs: output to stderr errors and above (#838) * Agent logs: output to stderr errors and above --- agent/main.go | 2 +- agent/pkg/oas/specgen_test.go | 2 +- shared/logger/logger.go | 21 ++++++++++++++++----- 3 files changed, 18 insertions(+), 7 deletions(-) diff --git a/agent/main.go b/agent/main.go index 84067dc6e..4b91de770 100644 --- a/agent/main.go +++ b/agent/main.go @@ -56,7 +56,7 @@ const ( func main() { logLevel := determineLogLevel() - logger.InitLoggerStderrOnly(logLevel) + logger.InitLoggerStd(logLevel) flag.Parse() if err := config.LoadConfig(); err != nil { logger.Log.Fatalf("Error loading config file %v", err) diff --git a/agent/pkg/oas/specgen_test.go b/agent/pkg/oas/specgen_test.go index fc59aee88..b3872538e 100644 --- a/agent/pkg/oas/specgen_test.go +++ b/agent/pkg/oas/specgen_test.go @@ -41,7 +41,7 @@ func outputSpec(label string, spec *openapi.OpenAPI, t *testing.T) string { } func TestEntries(t *testing.T) { - logger.InitLoggerStderrOnly(logging.INFO) + logger.InitLoggerStd(logging.INFO) files, err := getFiles("./test_artifacts/") if err != nil { t.Log(err) diff --git a/shared/logger/logger.go b/shared/logger/logger.go index 52379a7a6..0ccea2cef 100644 --- a/shared/logger/logger.go +++ b/shared/logger/logger.go @@ -29,10 +29,21 @@ func InitLogger(logPath string) { logging.SetBackend(backend1Leveled, backend2Formatter) } -func InitLoggerStderrOnly(level logging.Level) { - backend := logging.NewLogBackend(os.Stderr, "", 0) - backendFormatter := logging.NewBackendFormatter(backend, format) +func InitLoggerStd(level logging.Level) { + var backends []logging.Backend - logging.SetBackend(backendFormatter) - logging.SetLevel(level, "") + stderrBackend := logging.NewLogBackend(os.Stderr, "", 0) + stderrFormater := logging.NewBackendFormatter(stderrBackend, format) + stderrLeveled := logging.AddModuleLevel(stderrFormater) + stderrLeveled.SetLevel(logging.ERROR, "") + backends = append(backends, stderrLeveled) + + if level >= logging.WARNING { + stdoutBackend := logging.NewLogBackend(os.Stdout, "", 0) + stdoutFormater := logging.NewBackendFormatter(stdoutBackend, format) + stdoutLeveled := logging.AddModuleLevel(stdoutFormater) + stdoutLeveled.SetLevel(level, "") + backends = append(backends, stdoutLeveled) + } + logging.SetBackend(backends...) }