don't touch global logger in log tests

This commit is contained in:
John Roesler 2023-11-14 13:45:46 -06:00
parent 28c482dab5
commit 9a3fd98dcc
No known key found for this signature in database
GPG Key ID: 3AA260B9FCA0A6E1
2 changed files with 15 additions and 7 deletions

View File

@ -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 {

View File

@ -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"}