From 9a3fd98dcc038fd9ba53ebfd6cd2f8dbfc5c5de4 Mon Sep 17 00:00:00 2001 From: John Roesler Date: Tue, 14 Nov 2023 13:45:46 -0600 Subject: [PATCH] don't touch global logger in log tests --- logger.go | 16 +++++++++++----- logger_test.go | 6 ++++-- 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/logger.go b/logger.go index 7a2271d..aecfa11 100644 --- a/logger.go +++ b/logger.go @@ -4,6 +4,7 @@ package gocron import ( "fmt" "log" + "os" "strings" ) @@ -43,40 +44,45 @@ const ( ) type logger struct { + log *log.Logger level LogLevel } // NewLogger returns a new Logger that logs at the given level. func NewLogger(level LogLevel) Logger { - return &logger{level: level} + l := log.New(os.Stdout, "", log.LstdFlags) + return &logger{ + log: l, + level: level, + } } func (l *logger) Debug(msg string, args ...any) { if l.level < LogLevelDebug { return } - log.Printf("DEBUG: %s%s\n", msg, logFormatArgs(args...)) + l.log.Printf("DEBUG: %s%s\n", msg, logFormatArgs(args...)) } func (l *logger) Error(msg string, args ...any) { if l.level < LogLevelError { return } - log.Printf("ERROR: %s%s\n", msg, logFormatArgs(args...)) + l.log.Printf("ERROR: %s%s\n", msg, logFormatArgs(args...)) } func (l *logger) Info(msg string, args ...any) { if l.level < LogLevelInfo { return } - log.Printf("INFO: %s%s\n", msg, logFormatArgs(args...)) + l.log.Printf("INFO: %s%s\n", msg, logFormatArgs(args...)) } func (l *logger) Warn(msg string, args ...any) { if l.level < LogLevelWarn { return } - log.Printf("WARN: %s%s\n", msg, logFormatArgs(args...)) + l.log.Printf("WARN: %s%s\n", msg, logFormatArgs(args...)) } func logFormatArgs(args ...any) string { diff --git a/logger_test.go b/logger_test.go index 68acf97..74b4273 100644 --- a/logger_test.go +++ b/logger_test.go @@ -47,8 +47,10 @@ func TestNewLogger(t *testing.T) { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { var results bytes.Buffer - log.SetOutput(&results) - l := NewLogger(tt.level) + l := &logger{ + level: tt.level, + log: log.New(&results, "", log.LstdFlags), + } var noArgs []any oneArg := []any{"arg1"}