From 30050a681520684ac4dd82d7d03cf62b5c976c89 Mon Sep 17 00:00:00 2001 From: Kevin Offet Date: Thu, 28 Jul 2022 12:49:15 -0400 Subject: [PATCH] implemented output on/off by CurrentLevel setting --- levellogger.go | 48 ++++++++++++++++++++++++++++++++++++------------ types.go | 15 ++++++++------- 2 files changed, 44 insertions(+), 19 deletions(-) diff --git a/levellogger.go b/levellogger.go index de9ca03..03eab87 100644 --- a/levellogger.go +++ b/levellogger.go @@ -25,6 +25,8 @@ func NewLevelLogger(out io.Writer, level LogLevel) LevelLogger { // It's a log -- line output // so only use Println versions + +// always print panic and fatal log messages func (ll LevelLogger) Panic(v ...any) { ll.panicLog.Panicln(v...) } @@ -34,45 +36,67 @@ func (ll LevelLogger) Panicf(format string, v ...any) { } func (ll LevelLogger) Trace(v ...any) { - ll.traceLog.Println(v...) - ll.traceLog.Println(debug.Stack()) + if ll.CurrentLevel >= TraceLevel { + ll.traceLog.Println(v...) + ll.traceLog.Println(debug.Stack()) + } } func (ll LevelLogger) Tracef(format string, v ...any) { - ll.traceLog.Printf(format, v...) - ll.traceLog.Println(debug.Stack()) + if ll.CurrentLevel >= TraceLevel { + ll.traceLog.Printf(format, v...) + ll.traceLog.Println(debug.Stack()) + } } func (ll LevelLogger) Debug(v ...any) { - ll.debugLog.Println(v...) + if ll.CurrentLevel >= DebugLevel { + ll.debugLog.Println(v...) + } } func (ll LevelLogger) Debugf(format string, v ...any) { - ll.debugLog.Printf(format, v...) + if ll.CurrentLevel >= DebugLevel { + ll.debugLog.Printf(format, v...) + } } func (ll LevelLogger) Info(v ...any) { - ll.infoLog.Println(v...) + + if ll.CurrentLevel >= InfoLevel { + ll.infoLog.Println(v...) + } } func (ll LevelLogger) Infof(format string, v ...any) { - ll.infoLog.Printf(format, v...) + if ll.CurrentLevel >= InfoLevel { + ll.infoLog.Printf(format, v...) + + } } func (ll LevelLogger) Warn(v ...any) { - ll.warnLog.Println(v...) + if ll.CurrentLevel >= WarnLevel { + ll.warnLog.Println(v...) + } } func (ll LevelLogger) Warnf(format string, v ...any) { - ll.warnLog.Printf(format, v...) + if ll.CurrentLevel >= WarnLevel { + ll.warnLog.Printf(format, v...) + } } func (ll LevelLogger) Error(v ...any) { - ll.errorLog.Println(v...) + if ll.CurrentLevel >= ErrorLevel { + ll.errorLog.Println(v...) + } } func (ll LevelLogger) Errorf(format string, v ...any) { - ll.errorLog.Printf(format, v...) + if ll.CurrentLevel >= ErrorLevel { + ll.errorLog.Printf(format, v...) + } } func (ll LevelLogger) Fatal(v ...any) { diff --git a/types.go b/types.go index aead43d..ed21c63 100644 --- a/types.go +++ b/types.go @@ -15,13 +15,14 @@ import ( type LogLevel int const ( - Panic LogLevel = iota - Trace - Debug - Info - Warn - Error - Fatal + LevelLoggerOff LogLevel = iota + PanicLevel + TraceLevel + DebugLevel + InfoLevel + WarnLevel + ErrorLevel + FatalLevel ) // type LevelLogger interface {