From e20fe3c88797b65ea615713d8befded1b9e24eb4 Mon Sep 17 00:00:00 2001 From: Martin Riedl Date: Wed, 3 Jan 2024 23:45:40 +0100 Subject: [PATCH] feat: loglevel for each output --- logger.go | 11 ++--------- output.go | 11 +++++++++-- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/logger.go b/logger.go index 134e63e..d35a347 100644 --- a/logger.go +++ b/logger.go @@ -19,27 +19,20 @@ import "time" var Default = NewLoggerDefault() type Logger struct { - Level Level Outputs []*Output } -func NewLogger(level Level, outputs []*Output) *Logger { +func NewLogger(outputs []*Output) *Logger { return &Logger{ - Level: LevelInfo, Outputs: outputs, } } func NewLoggerDefault() *Logger { - return NewLogger(LevelInfo, []*Output{NewOutputDefault()}) + return NewLogger([]*Output{NewOutputDefault()}) } func (logger *Logger) LogEntry(entry *Entry) { - // check, if message should be printed - if entry.Level > logger.Level { - return - } - // set execution time entry.Time = time.Now() diff --git a/output.go b/output.go index 62cf3e4..06345d1 100644 --- a/output.go +++ b/output.go @@ -17,23 +17,30 @@ package golog import "sync" type Output struct { + Level Level Formatter Formatter formatterLock sync.Mutex Printer Printer } -func NewOutput(formatter Formatter, printer Printer) *Output { +func NewOutput(level Level, formatter Formatter, printer Printer) *Output { return &Output{ + Level: level, Formatter: formatter, Printer: printer, } } func NewOutputDefault() *Output { - return NewOutput(NewFormatterKeyValue(), NewPrinterStdout()) + return NewOutput(LevelInfo, NewFormatterKeyValue(), NewPrinterStdout()) } func (output *Output) Send(entry *Entry) { + // check, if message should be printed + if entry.Level > output.Level { + return + } + output.format(entry) }