From 4225d694ba95bda1ce8bcbd67c5701beef4491d0 Mon Sep 17 00:00:00 2001 From: Logan HAUSPIE Date: Wed, 30 May 2018 01:47:39 +0200 Subject: [PATCH 1/2] feat: new methods to check enabled log level Adding 6 methods on 'exported', 'logger' and 'entry': - IsDebugEnabled() bool - IsInfoEnabled() bool - IsWarnEnabled() bool - IsErrorEnabled() bool - IsFatalEnabled() bool - IsPanicEnabled() bool Replace duplicated 'if logger.level() >= XxxxLevel' by a call to the new methods in 'logger' and 'entry' Closes #761 --- entry.go | 60 +++++++++++++++++++++++++++++++-------------- exported.go | 24 ++++++++++++++++++ logger.go | 66 ++++++++++++++++++++++++++++++++++---------------- logrus.go | 7 ++++++ logrus_test.go | 51 ++++++++++++++++++++++++++++++++++++++ 5 files changed, 169 insertions(+), 39 deletions(-) diff --git a/entry.go b/entry.go index d075d72..29bcae6 100644 --- a/entry.go +++ b/entry.go @@ -139,7 +139,7 @@ func (entry *Entry) write() { } func (entry *Entry) Debug(args ...interface{}) { - if entry.Logger.level() >= DebugLevel { + if entry.IsDebugEnabled() { entry.log(DebugLevel, fmt.Sprint(args...)) } } @@ -149,13 +149,13 @@ func (entry *Entry) Print(args ...interface{}) { } func (entry *Entry) Info(args ...interface{}) { - if entry.Logger.level() >= InfoLevel { + if entry.IsInfoEnabled() { entry.log(InfoLevel, fmt.Sprint(args...)) } } func (entry *Entry) Warn(args ...interface{}) { - if entry.Logger.level() >= WarnLevel { + if entry.IsWarnEnabled() { entry.log(WarnLevel, fmt.Sprint(args...)) } } @@ -165,20 +165,20 @@ func (entry *Entry) Warning(args ...interface{}) { } func (entry *Entry) Error(args ...interface{}) { - if entry.Logger.level() >= ErrorLevel { + if entry.IsErrorEnabled() { entry.log(ErrorLevel, fmt.Sprint(args...)) } } func (entry *Entry) Fatal(args ...interface{}) { - if entry.Logger.level() >= FatalLevel { + if entry.IsFatalEnabled() { entry.log(FatalLevel, fmt.Sprint(args...)) } Exit(1) } func (entry *Entry) Panic(args ...interface{}) { - if entry.Logger.level() >= PanicLevel { + if entry.IsPanicEnabled() { entry.log(PanicLevel, fmt.Sprint(args...)) } panic(fmt.Sprint(args...)) @@ -187,13 +187,13 @@ func (entry *Entry) Panic(args ...interface{}) { // Entry Printf family functions func (entry *Entry) Debugf(format string, args ...interface{}) { - if entry.Logger.level() >= DebugLevel { + if entry.IsDebugEnabled() { entry.Debug(fmt.Sprintf(format, args...)) } } func (entry *Entry) Infof(format string, args ...interface{}) { - if entry.Logger.level() >= InfoLevel { + if entry.IsInfoEnabled() { entry.Info(fmt.Sprintf(format, args...)) } } @@ -203,7 +203,7 @@ func (entry *Entry) Printf(format string, args ...interface{}) { } func (entry *Entry) Warnf(format string, args ...interface{}) { - if entry.Logger.level() >= WarnLevel { + if entry.IsWarnEnabled() { entry.Warn(fmt.Sprintf(format, args...)) } } @@ -213,20 +213,20 @@ func (entry *Entry) Warningf(format string, args ...interface{}) { } func (entry *Entry) Errorf(format string, args ...interface{}) { - if entry.Logger.level() >= ErrorLevel { + if entry.IsErrorEnabled() { entry.Error(fmt.Sprintf(format, args...)) } } func (entry *Entry) Fatalf(format string, args ...interface{}) { - if entry.Logger.level() >= FatalLevel { + if entry.IsFatalEnabled() { entry.Fatal(fmt.Sprintf(format, args...)) } Exit(1) } func (entry *Entry) Panicf(format string, args ...interface{}) { - if entry.Logger.level() >= PanicLevel { + if entry.IsPanicEnabled() { entry.Panic(fmt.Sprintf(format, args...)) } } @@ -234,13 +234,13 @@ func (entry *Entry) Panicf(format string, args ...interface{}) { // Entry Println family functions func (entry *Entry) Debugln(args ...interface{}) { - if entry.Logger.level() >= DebugLevel { + if entry.IsDebugEnabled() { entry.Debug(entry.sprintlnn(args...)) } } func (entry *Entry) Infoln(args ...interface{}) { - if entry.Logger.level() >= InfoLevel { + if entry.IsInfoEnabled() { entry.Info(entry.sprintlnn(args...)) } } @@ -250,7 +250,7 @@ func (entry *Entry) Println(args ...interface{}) { } func (entry *Entry) Warnln(args ...interface{}) { - if entry.Logger.level() >= WarnLevel { + if entry.IsWarnEnabled() { entry.Warn(entry.sprintlnn(args...)) } } @@ -260,24 +260,48 @@ func (entry *Entry) Warningln(args ...interface{}) { } func (entry *Entry) Errorln(args ...interface{}) { - if entry.Logger.level() >= ErrorLevel { + if entry.IsErrorEnabled() { entry.Error(entry.sprintlnn(args...)) } } func (entry *Entry) Fatalln(args ...interface{}) { - if entry.Logger.level() >= FatalLevel { + if entry.IsFatalEnabled() { entry.Fatal(entry.sprintlnn(args...)) } Exit(1) } func (entry *Entry) Panicln(args ...interface{}) { - if entry.Logger.level() >= PanicLevel { + if entry.IsPanicEnabled() { entry.Panic(entry.sprintlnn(args...)) } } +func (entry *Entry) IsDebugEnabled() bool { + return entry.Logger.IsDebugEnabled() +} + +func (entry *Entry) IsInfoEnabled() bool { + return entry.Logger.IsInfoEnabled() +} + +func (entry *Entry) IsWarnEnabled() bool { + return entry.Logger.IsWarnEnabled() +} + +func (entry *Entry) IsErrorEnabled() bool { + return entry.Logger.IsErrorEnabled() +} + +func (entry *Entry) IsFatalEnabled() bool { + return entry.Logger.IsFatalEnabled() +} + +func (entry *Entry) IsPanicEnabled() bool { + return entry.Logger.IsPanicEnabled() +} + // Sprintlnn => Sprint no newline. This is to get the behavior of how // fmt.Sprintln where spaces are always added between operands, regardless of // their type. Instead of vendoring the Sprintln implementation to spare a diff --git a/exported.go b/exported.go index 013183e..f2df9e3 100644 --- a/exported.go +++ b/exported.go @@ -41,6 +41,30 @@ func GetLevel() Level { return std.level() } +func IsDebugEnabled() bool { + return std.IsDebugEnabled() +} + +func IsInfoEnabled() bool { + return std.IsInfoEnabled() +} + +func IsWarnEnabled() bool { + return std.IsWarnEnabled() +} + +func IsErrorEnabled() bool { + return std.IsErrorEnabled() +} + +func IsFatalEnabled() bool { + return std.IsFatalEnabled() +} + +func IsPanicEnabled() bool { + return std.IsPanicEnabled() +} + // AddHook adds a hook to the standard logger hooks. func AddHook(hook Hook) { std.mu.Lock() diff --git a/logger.go b/logger.go index fdaf8a6..034fb18 100644 --- a/logger.go +++ b/logger.go @@ -113,7 +113,7 @@ func (logger *Logger) WithError(err error) *Entry { } func (logger *Logger) Debugf(format string, args ...interface{}) { - if logger.level() >= DebugLevel { + if logger.IsDebugEnabled() { entry := logger.newEntry() entry.Debugf(format, args...) logger.releaseEntry(entry) @@ -121,7 +121,7 @@ func (logger *Logger) Debugf(format string, args ...interface{}) { } func (logger *Logger) Infof(format string, args ...interface{}) { - if logger.level() >= InfoLevel { + if logger.IsInfoEnabled() { entry := logger.newEntry() entry.Infof(format, args...) logger.releaseEntry(entry) @@ -135,7 +135,7 @@ func (logger *Logger) Printf(format string, args ...interface{}) { } func (logger *Logger) Warnf(format string, args ...interface{}) { - if logger.level() >= WarnLevel { + if logger.IsWarnEnabled() { entry := logger.newEntry() entry.Warnf(format, args...) logger.releaseEntry(entry) @@ -143,7 +143,7 @@ func (logger *Logger) Warnf(format string, args ...interface{}) { } func (logger *Logger) Warningf(format string, args ...interface{}) { - if logger.level() >= WarnLevel { + if logger.IsWarnEnabled() { entry := logger.newEntry() entry.Warnf(format, args...) logger.releaseEntry(entry) @@ -151,7 +151,7 @@ func (logger *Logger) Warningf(format string, args ...interface{}) { } func (logger *Logger) Errorf(format string, args ...interface{}) { - if logger.level() >= ErrorLevel { + if logger.IsErrorEnabled() { entry := logger.newEntry() entry.Errorf(format, args...) logger.releaseEntry(entry) @@ -159,7 +159,7 @@ func (logger *Logger) Errorf(format string, args ...interface{}) { } func (logger *Logger) Fatalf(format string, args ...interface{}) { - if logger.level() >= FatalLevel { + if logger.IsFatalEnabled() { entry := logger.newEntry() entry.Fatalf(format, args...) logger.releaseEntry(entry) @@ -168,7 +168,7 @@ func (logger *Logger) Fatalf(format string, args ...interface{}) { } func (logger *Logger) Panicf(format string, args ...interface{}) { - if logger.level() >= PanicLevel { + if logger.IsPanicEnabled() { entry := logger.newEntry() entry.Panicf(format, args...) logger.releaseEntry(entry) @@ -176,7 +176,7 @@ func (logger *Logger) Panicf(format string, args ...interface{}) { } func (logger *Logger) Debug(args ...interface{}) { - if logger.level() >= DebugLevel { + if logger.IsDebugEnabled() { entry := logger.newEntry() entry.Debug(args...) logger.releaseEntry(entry) @@ -184,7 +184,7 @@ func (logger *Logger) Debug(args ...interface{}) { } func (logger *Logger) Info(args ...interface{}) { - if logger.level() >= InfoLevel { + if logger.IsInfoEnabled() { entry := logger.newEntry() entry.Info(args...) logger.releaseEntry(entry) @@ -198,7 +198,7 @@ func (logger *Logger) Print(args ...interface{}) { } func (logger *Logger) Warn(args ...interface{}) { - if logger.level() >= WarnLevel { + if logger.IsWarnEnabled() { entry := logger.newEntry() entry.Warn(args...) logger.releaseEntry(entry) @@ -206,7 +206,7 @@ func (logger *Logger) Warn(args ...interface{}) { } func (logger *Logger) Warning(args ...interface{}) { - if logger.level() >= WarnLevel { + if logger.IsWarnEnabled() { entry := logger.newEntry() entry.Warn(args...) logger.releaseEntry(entry) @@ -214,7 +214,7 @@ func (logger *Logger) Warning(args ...interface{}) { } func (logger *Logger) Error(args ...interface{}) { - if logger.level() >= ErrorLevel { + if logger.IsErrorEnabled() { entry := logger.newEntry() entry.Error(args...) logger.releaseEntry(entry) @@ -222,7 +222,7 @@ func (logger *Logger) Error(args ...interface{}) { } func (logger *Logger) Fatal(args ...interface{}) { - if logger.level() >= FatalLevel { + if logger.IsFatalEnabled() { entry := logger.newEntry() entry.Fatal(args...) logger.releaseEntry(entry) @@ -231,7 +231,7 @@ func (logger *Logger) Fatal(args ...interface{}) { } func (logger *Logger) Panic(args ...interface{}) { - if logger.level() >= PanicLevel { + if logger.IsPanicEnabled() { entry := logger.newEntry() entry.Panic(args...) logger.releaseEntry(entry) @@ -239,7 +239,7 @@ func (logger *Logger) Panic(args ...interface{}) { } func (logger *Logger) Debugln(args ...interface{}) { - if logger.level() >= DebugLevel { + if logger.IsDebugEnabled() { entry := logger.newEntry() entry.Debugln(args...) logger.releaseEntry(entry) @@ -247,7 +247,7 @@ func (logger *Logger) Debugln(args ...interface{}) { } func (logger *Logger) Infoln(args ...interface{}) { - if logger.level() >= InfoLevel { + if logger.IsInfoEnabled() { entry := logger.newEntry() entry.Infoln(args...) logger.releaseEntry(entry) @@ -261,7 +261,7 @@ func (logger *Logger) Println(args ...interface{}) { } func (logger *Logger) Warnln(args ...interface{}) { - if logger.level() >= WarnLevel { + if logger.IsWarnEnabled() { entry := logger.newEntry() entry.Warnln(args...) logger.releaseEntry(entry) @@ -269,7 +269,7 @@ func (logger *Logger) Warnln(args ...interface{}) { } func (logger *Logger) Warningln(args ...interface{}) { - if logger.level() >= WarnLevel { + if logger.IsWarnEnabled() { entry := logger.newEntry() entry.Warnln(args...) logger.releaseEntry(entry) @@ -277,7 +277,7 @@ func (logger *Logger) Warningln(args ...interface{}) { } func (logger *Logger) Errorln(args ...interface{}) { - if logger.level() >= ErrorLevel { + if logger.IsErrorEnabled() { entry := logger.newEntry() entry.Errorln(args...) logger.releaseEntry(entry) @@ -285,7 +285,7 @@ func (logger *Logger) Errorln(args ...interface{}) { } func (logger *Logger) Fatalln(args ...interface{}) { - if logger.level() >= FatalLevel { + if logger.IsFatalEnabled() { entry := logger.newEntry() entry.Fatalln(args...) logger.releaseEntry(entry) @@ -294,7 +294,7 @@ func (logger *Logger) Fatalln(args ...interface{}) { } func (logger *Logger) Panicln(args ...interface{}) { - if logger.level() >= PanicLevel { + if logger.IsPanicEnabled() { entry := logger.newEntry() entry.Panicln(args...) logger.releaseEntry(entry) @@ -321,3 +321,27 @@ func (logger *Logger) AddHook(hook Hook) { defer logger.mu.Unlock() logger.Hooks.Add(hook) } + +func (logger *Logger) IsDebugEnabled() bool { + return logger.level() >= DebugLevel +} + +func (logger *Logger) IsInfoEnabled() bool { + return logger.level() >= InfoLevel +} + +func (logger *Logger) IsWarnEnabled() bool { + return logger.level() >= WarnLevel +} + +func (logger *Logger) IsErrorEnabled() bool { + return logger.level() >= ErrorLevel +} + +func (logger *Logger) IsFatalEnabled() bool { + return logger.level() >= FatalLevel +} + +func (logger *Logger) IsPanicEnabled() bool { + return logger.level() >= PanicLevel +} diff --git a/logrus.go b/logrus.go index dd38999..33e07fa 100644 --- a/logrus.go +++ b/logrus.go @@ -140,4 +140,11 @@ type FieldLogger interface { Errorln(args ...interface{}) Fatalln(args ...interface{}) Panicln(args ...interface{}) + + IsDebugEnabled() bool + IsInfoEnabled() bool + IsWarnEnabled() bool + IsErrorEnabled() bool + IsFatalEnabled() bool + IsPanicEnabled() bool } diff --git a/logrus_test.go b/logrus_test.go index 78cbc28..2c59dc9 100644 --- a/logrus_test.go +++ b/logrus_test.go @@ -384,3 +384,54 @@ func TestEntryWriter(t *testing.T) { assert.Equal(t, fields["foo"], "bar") assert.Equal(t, fields["level"], "warning") } + +func TestLogLevelEnabled(t *testing.T) { + log := New() + log.SetLevel(PanicLevel) + assert.Equal(t, true, log.IsPanicEnabled()) + assert.Equal(t, false, log.IsFatalEnabled()) + assert.Equal(t, false, log.IsErrorEnabled()) + assert.Equal(t, false, log.IsWarnEnabled()) + assert.Equal(t, false, log.IsInfoEnabled()) + assert.Equal(t, false, log.IsDebugEnabled()) + + log.SetLevel(FatalLevel) + assert.Equal(t, true, log.IsPanicEnabled()) + assert.Equal(t, true, log.IsFatalEnabled()) + assert.Equal(t, false, log.IsErrorEnabled()) + assert.Equal(t, false, log.IsWarnEnabled()) + assert.Equal(t, false, log.IsInfoEnabled()) + assert.Equal(t, false, log.IsDebugEnabled()) + + log.SetLevel(ErrorLevel) + assert.Equal(t, true, log.IsPanicEnabled()) + assert.Equal(t, true, log.IsFatalEnabled()) + assert.Equal(t, true, log.IsErrorEnabled()) + assert.Equal(t, false, log.IsWarnEnabled()) + assert.Equal(t, false, log.IsInfoEnabled()) + assert.Equal(t, false, log.IsDebugEnabled()) + + log.SetLevel(WarnLevel) + assert.Equal(t, true, log.IsPanicEnabled()) + assert.Equal(t, true, log.IsFatalEnabled()) + assert.Equal(t, true, log.IsErrorEnabled()) + assert.Equal(t, true, log.IsWarnEnabled()) + assert.Equal(t, false, log.IsInfoEnabled()) + assert.Equal(t, false, log.IsDebugEnabled()) + + log.SetLevel(InfoLevel) + assert.Equal(t, true, log.IsPanicEnabled()) + assert.Equal(t, true, log.IsFatalEnabled()) + assert.Equal(t, true, log.IsErrorEnabled()) + assert.Equal(t, true, log.IsWarnEnabled()) + assert.Equal(t, true, log.IsInfoEnabled()) + assert.Equal(t, false, log.IsDebugEnabled()) + + log.SetLevel(DebugLevel) + assert.Equal(t, true, log.IsPanicEnabled()) + assert.Equal(t, true, log.IsFatalEnabled()) + assert.Equal(t, true, log.IsErrorEnabled()) + assert.Equal(t, true, log.IsWarnEnabled()) + assert.Equal(t, true, log.IsInfoEnabled()) + assert.Equal(t, true, log.IsDebugEnabled()) +} From 90bf2e7f391a08ecb7d505856924ed3bf1bc771f Mon Sep 17 00:00:00 2001 From: Logan HAUSPIE Date: Sun, 26 Aug 2018 23:51:09 +0200 Subject: [PATCH 2/2] feat(LogLevel): taking in account code review from David Bariod --- entry.go | 60 +++++++++++++---------------------------- exported.go | 25 +++--------------- logger.go | 65 +++++++++++++++++---------------------------- logrus.go | 12 ++++----- logrus_test.go | 72 +++++++++++++++++++++++++------------------------- 5 files changed, 87 insertions(+), 147 deletions(-) diff --git a/entry.go b/entry.go index 82ef93c..8c6a389 100644 --- a/entry.go +++ b/entry.go @@ -151,7 +151,7 @@ func (entry *Entry) write() { } func (entry *Entry) Debug(args ...interface{}) { - if entry.IsDebugEnabled() { + if entry.Logger.IsLevelEnabled(DebugLevel) { entry.log(DebugLevel, fmt.Sprint(args...)) } } @@ -161,13 +161,13 @@ func (entry *Entry) Print(args ...interface{}) { } func (entry *Entry) Info(args ...interface{}) { - if entry.IsInfoEnabled() { + if entry.Logger.IsLevelEnabled(InfoLevel) { entry.log(InfoLevel, fmt.Sprint(args...)) } } func (entry *Entry) Warn(args ...interface{}) { - if entry.IsWarnEnabled() { + if entry.Logger.IsLevelEnabled(WarnLevel) { entry.log(WarnLevel, fmt.Sprint(args...)) } } @@ -177,20 +177,20 @@ func (entry *Entry) Warning(args ...interface{}) { } func (entry *Entry) Error(args ...interface{}) { - if entry.IsErrorEnabled() { + if entry.Logger.IsLevelEnabled(ErrorLevel) { entry.log(ErrorLevel, fmt.Sprint(args...)) } } func (entry *Entry) Fatal(args ...interface{}) { - if entry.IsFatalEnabled() { + if entry.Logger.IsLevelEnabled(FatalLevel) { entry.log(FatalLevel, fmt.Sprint(args...)) } Exit(1) } func (entry *Entry) Panic(args ...interface{}) { - if entry.IsPanicEnabled() { + if entry.Logger.IsLevelEnabled(PanicLevel) { entry.log(PanicLevel, fmt.Sprint(args...)) } panic(fmt.Sprint(args...)) @@ -199,13 +199,13 @@ func (entry *Entry) Panic(args ...interface{}) { // Entry Printf family functions func (entry *Entry) Debugf(format string, args ...interface{}) { - if entry.IsDebugEnabled() { + if entry.Logger.IsLevelEnabled(DebugLevel) { entry.Debug(fmt.Sprintf(format, args...)) } } func (entry *Entry) Infof(format string, args ...interface{}) { - if entry.IsInfoEnabled() { + if entry.Logger.IsLevelEnabled(InfoLevel) { entry.Info(fmt.Sprintf(format, args...)) } } @@ -215,7 +215,7 @@ func (entry *Entry) Printf(format string, args ...interface{}) { } func (entry *Entry) Warnf(format string, args ...interface{}) { - if entry.IsWarnEnabled() { + if entry.Logger.IsLevelEnabled(WarnLevel) { entry.Warn(fmt.Sprintf(format, args...)) } } @@ -225,20 +225,20 @@ func (entry *Entry) Warningf(format string, args ...interface{}) { } func (entry *Entry) Errorf(format string, args ...interface{}) { - if entry.IsErrorEnabled() { + if entry.Logger.IsLevelEnabled(ErrorLevel) { entry.Error(fmt.Sprintf(format, args...)) } } func (entry *Entry) Fatalf(format string, args ...interface{}) { - if entry.IsFatalEnabled() { + if entry.Logger.IsLevelEnabled(FatalLevel) { entry.Fatal(fmt.Sprintf(format, args...)) } Exit(1) } func (entry *Entry) Panicf(format string, args ...interface{}) { - if entry.IsPanicEnabled() { + if entry.Logger.IsLevelEnabled(PanicLevel) { entry.Panic(fmt.Sprintf(format, args...)) } } @@ -246,13 +246,13 @@ func (entry *Entry) Panicf(format string, args ...interface{}) { // Entry Println family functions func (entry *Entry) Debugln(args ...interface{}) { - if entry.IsDebugEnabled() { + if entry.Logger.IsLevelEnabled(DebugLevel) { entry.Debug(entry.sprintlnn(args...)) } } func (entry *Entry) Infoln(args ...interface{}) { - if entry.IsInfoEnabled() { + if entry.Logger.IsLevelEnabled(InfoLevel) { entry.Info(entry.sprintlnn(args...)) } } @@ -262,7 +262,7 @@ func (entry *Entry) Println(args ...interface{}) { } func (entry *Entry) Warnln(args ...interface{}) { - if entry.IsWarnEnabled() { + if entry.Logger.IsLevelEnabled(WarnLevel) { entry.Warn(entry.sprintlnn(args...)) } } @@ -272,48 +272,24 @@ func (entry *Entry) Warningln(args ...interface{}) { } func (entry *Entry) Errorln(args ...interface{}) { - if entry.IsErrorEnabled() { + if entry.Logger.IsLevelEnabled(ErrorLevel) { entry.Error(entry.sprintlnn(args...)) } } func (entry *Entry) Fatalln(args ...interface{}) { - if entry.IsFatalEnabled() { + if entry.Logger.IsLevelEnabled(FatalLevel) { entry.Fatal(entry.sprintlnn(args...)) } Exit(1) } func (entry *Entry) Panicln(args ...interface{}) { - if entry.IsPanicEnabled() { + if entry.Logger.IsLevelEnabled(PanicLevel) { entry.Panic(entry.sprintlnn(args...)) } } -func (entry *Entry) IsDebugEnabled() bool { - return entry.Logger.IsDebugEnabled() -} - -func (entry *Entry) IsInfoEnabled() bool { - return entry.Logger.IsInfoEnabled() -} - -func (entry *Entry) IsWarnEnabled() bool { - return entry.Logger.IsWarnEnabled() -} - -func (entry *Entry) IsErrorEnabled() bool { - return entry.Logger.IsErrorEnabled() -} - -func (entry *Entry) IsFatalEnabled() bool { - return entry.Logger.IsFatalEnabled() -} - -func (entry *Entry) IsPanicEnabled() bool { - return entry.Logger.IsPanicEnabled() -} - // Sprintlnn => Sprint no newline. This is to get the behavior of how // fmt.Sprintln where spaces are always added between operands, regardless of // their type. Instead of vendoring the Sprintln implementation to spare a diff --git a/exported.go b/exported.go index 7643671..fb2a7a1 100644 --- a/exported.go +++ b/exported.go @@ -34,28 +34,9 @@ func GetLevel() Level { return std.GetLevel() } -func IsDebugEnabled() bool { - return std.IsDebugEnabled() -} - -func IsInfoEnabled() bool { - return std.IsInfoEnabled() -} - -func IsWarnEnabled() bool { - return std.IsWarnEnabled() -} - -func IsErrorEnabled() bool { - return std.IsErrorEnabled() -} - -func IsFatalEnabled() bool { - return std.IsFatalEnabled() -} - -func IsPanicEnabled() bool { - return std.IsPanicEnabled() +// IsLevelEnabled checks if the log level of the standard logger is greater than the level param +func IsLevelEnabled(level Level) bool { + return std.IsLevelEnabled(level) } // AddHook adds a hook to the standard logger hooks. diff --git a/logger.go b/logger.go index 61bc1cc..b67bfcb 100644 --- a/logger.go +++ b/logger.go @@ -122,7 +122,7 @@ func (logger *Logger) WithTime(t time.Time) *Entry { } func (logger *Logger) Debugf(format string, args ...interface{}) { - if logger.IsDebugEnabled() { + if logger.IsLevelEnabled(DebugLevel) { entry := logger.newEntry() entry.Debugf(format, args...) logger.releaseEntry(entry) @@ -130,7 +130,7 @@ func (logger *Logger) Debugf(format string, args ...interface{}) { } func (logger *Logger) Infof(format string, args ...interface{}) { - if logger.IsInfoEnabled() { + if logger.IsLevelEnabled(InfoLevel) { entry := logger.newEntry() entry.Infof(format, args...) logger.releaseEntry(entry) @@ -144,7 +144,7 @@ func (logger *Logger) Printf(format string, args ...interface{}) { } func (logger *Logger) Warnf(format string, args ...interface{}) { - if logger.IsWarnEnabled() { + if logger.IsLevelEnabled(WarnLevel) { entry := logger.newEntry() entry.Warnf(format, args...) logger.releaseEntry(entry) @@ -152,7 +152,7 @@ func (logger *Logger) Warnf(format string, args ...interface{}) { } func (logger *Logger) Warningf(format string, args ...interface{}) { - if logger.IsWarnEnabled() { + if logger.IsLevelEnabled(WarnLevel) { entry := logger.newEntry() entry.Warnf(format, args...) logger.releaseEntry(entry) @@ -160,7 +160,7 @@ func (logger *Logger) Warningf(format string, args ...interface{}) { } func (logger *Logger) Errorf(format string, args ...interface{}) { - if logger.IsErrorEnabled() { + if logger.IsLevelEnabled(ErrorLevel) { entry := logger.newEntry() entry.Errorf(format, args...) logger.releaseEntry(entry) @@ -168,7 +168,7 @@ func (logger *Logger) Errorf(format string, args ...interface{}) { } func (logger *Logger) Fatalf(format string, args ...interface{}) { - if logger.IsFatalEnabled() { + if logger.IsLevelEnabled(FatalLevel) { entry := logger.newEntry() entry.Fatalf(format, args...) logger.releaseEntry(entry) @@ -177,7 +177,7 @@ func (logger *Logger) Fatalf(format string, args ...interface{}) { } func (logger *Logger) Panicf(format string, args ...interface{}) { - if logger.IsPanicEnabled() { + if logger.IsLevelEnabled(PanicLevel) { entry := logger.newEntry() entry.Panicf(format, args...) logger.releaseEntry(entry) @@ -185,7 +185,7 @@ func (logger *Logger) Panicf(format string, args ...interface{}) { } func (logger *Logger) Debug(args ...interface{}) { - if logger.IsDebugEnabled() { + if logger.IsLevelEnabled(DebugLevel) { entry := logger.newEntry() entry.Debug(args...) logger.releaseEntry(entry) @@ -193,7 +193,7 @@ func (logger *Logger) Debug(args ...interface{}) { } func (logger *Logger) Info(args ...interface{}) { - if logger.IsInfoEnabled() { + if logger.IsLevelEnabled(InfoLevel) { entry := logger.newEntry() entry.Info(args...) logger.releaseEntry(entry) @@ -207,7 +207,7 @@ func (logger *Logger) Print(args ...interface{}) { } func (logger *Logger) Warn(args ...interface{}) { - if logger.IsWarnEnabled() { + if logger.IsLevelEnabled(WarnLevel) { entry := logger.newEntry() entry.Warn(args...) logger.releaseEntry(entry) @@ -215,7 +215,7 @@ func (logger *Logger) Warn(args ...interface{}) { } func (logger *Logger) Warning(args ...interface{}) { - if logger.IsWarnEnabled() { + if logger.IsLevelEnabled(WarnLevel) { entry := logger.newEntry() entry.Warn(args...) logger.releaseEntry(entry) @@ -223,7 +223,7 @@ func (logger *Logger) Warning(args ...interface{}) { } func (logger *Logger) Error(args ...interface{}) { - if logger.IsErrorEnabled() { + if logger.IsLevelEnabled(ErrorLevel) { entry := logger.newEntry() entry.Error(args...) logger.releaseEntry(entry) @@ -231,7 +231,7 @@ func (logger *Logger) Error(args ...interface{}) { } func (logger *Logger) Fatal(args ...interface{}) { - if logger.IsFatalEnabled() { + if logger.IsLevelEnabled(FatalLevel) { entry := logger.newEntry() entry.Fatal(args...) logger.releaseEntry(entry) @@ -240,7 +240,7 @@ func (logger *Logger) Fatal(args ...interface{}) { } func (logger *Logger) Panic(args ...interface{}) { - if logger.IsPanicEnabled() { + if logger.IsLevelEnabled(PanicLevel) { entry := logger.newEntry() entry.Panic(args...) logger.releaseEntry(entry) @@ -248,7 +248,7 @@ func (logger *Logger) Panic(args ...interface{}) { } func (logger *Logger) Debugln(args ...interface{}) { - if logger.IsDebugEnabled() { + if logger.IsLevelEnabled(DebugLevel) { entry := logger.newEntry() entry.Debugln(args...) logger.releaseEntry(entry) @@ -256,7 +256,7 @@ func (logger *Logger) Debugln(args ...interface{}) { } func (logger *Logger) Infoln(args ...interface{}) { - if logger.IsInfoEnabled() { + if logger.IsLevelEnabled(InfoLevel) { entry := logger.newEntry() entry.Infoln(args...) logger.releaseEntry(entry) @@ -270,7 +270,7 @@ func (logger *Logger) Println(args ...interface{}) { } func (logger *Logger) Warnln(args ...interface{}) { - if logger.IsWarnEnabled() { + if logger.IsLevelEnabled(WarnLevel) { entry := logger.newEntry() entry.Warnln(args...) logger.releaseEntry(entry) @@ -278,7 +278,7 @@ func (logger *Logger) Warnln(args ...interface{}) { } func (logger *Logger) Warningln(args ...interface{}) { - if logger.IsWarnEnabled() { + if logger.IsLevelEnabled(WarnLevel) { entry := logger.newEntry() entry.Warnln(args...) logger.releaseEntry(entry) @@ -286,7 +286,7 @@ func (logger *Logger) Warningln(args ...interface{}) { } func (logger *Logger) Errorln(args ...interface{}) { - if logger.IsErrorEnabled() { + if logger.IsLevelEnabled(ErrorLevel) { entry := logger.newEntry() entry.Errorln(args...) logger.releaseEntry(entry) @@ -294,7 +294,7 @@ func (logger *Logger) Errorln(args ...interface{}) { } func (logger *Logger) Fatalln(args ...interface{}) { - if logger.IsFatalEnabled() { + if logger.IsLevelEnabled(FatalLevel) { entry := logger.newEntry() entry.Fatalln(args...) logger.releaseEntry(entry) @@ -303,7 +303,7 @@ func (logger *Logger) Fatalln(args ...interface{}) { } func (logger *Logger) Panicln(args ...interface{}) { - if logger.IsPanicEnabled() { + if logger.IsLevelEnabled(PanicLevel) { entry := logger.newEntry() entry.Panicln(args...) logger.releaseEntry(entry) @@ -338,28 +338,11 @@ func (logger *Logger) AddHook(hook Hook) { logger.Hooks.Add(hook) } -func (logger *Logger) IsDebugEnabled() bool { - return logger.level() >= DebugLevel +// IsLevelEnabled checks if the log level of the logger is greater than the level param +func (logger *Logger) IsLevelEnabled(level Level) bool { + return logger.level() >= level } -func (logger *Logger) IsInfoEnabled() bool { - return logger.level() >= InfoLevel -} - -func (logger *Logger) IsWarnEnabled() bool { - return logger.level() >= WarnLevel -} - -func (logger *Logger) IsErrorEnabled() bool { - return logger.level() >= ErrorLevel -} - -func (logger *Logger) IsFatalEnabled() bool { - return logger.level() >= FatalLevel -} - -func (logger *Logger) IsPanicEnabled() bool { - return logger.level() >= PanicLevel // SetFormatter sets the logger formatter. func (logger *Logger) SetFormatter(formatter Formatter) { logger.mu.Lock() diff --git a/logrus.go b/logrus.go index 33e07fa..fa0b9de 100644 --- a/logrus.go +++ b/logrus.go @@ -141,10 +141,10 @@ type FieldLogger interface { Fatalln(args ...interface{}) Panicln(args ...interface{}) - IsDebugEnabled() bool - IsInfoEnabled() bool - IsWarnEnabled() bool - IsErrorEnabled() bool - IsFatalEnabled() bool - IsPanicEnabled() bool + // IsDebugEnabled() bool + // IsInfoEnabled() bool + // IsWarnEnabled() bool + // IsErrorEnabled() bool + // IsFatalEnabled() bool + // IsPanicEnabled() bool } diff --git a/logrus_test.go b/logrus_test.go index 4820e33..97d15d7 100644 --- a/logrus_test.go +++ b/logrus_test.go @@ -488,50 +488,50 @@ func TestEntryWriter(t *testing.T) { func TestLogLevelEnabled(t *testing.T) { log := New() log.SetLevel(PanicLevel) - assert.Equal(t, true, log.IsPanicEnabled()) - assert.Equal(t, false, log.IsFatalEnabled()) - assert.Equal(t, false, log.IsErrorEnabled()) - assert.Equal(t, false, log.IsWarnEnabled()) - assert.Equal(t, false, log.IsInfoEnabled()) - assert.Equal(t, false, log.IsDebugEnabled()) + assert.Equal(t, true, log.IsLevelEnabled(PanicLevel)) + assert.Equal(t, false, log.IsLevelEnabled(FatalLevel)) + assert.Equal(t, false, log.IsLevelEnabled(ErrorLevel)) + assert.Equal(t, false, log.IsLevelEnabled(WarnLevel)) + assert.Equal(t, false, log.IsLevelEnabled(InfoLevel)) + assert.Equal(t, false, log.IsLevelEnabled(DebugLevel)) log.SetLevel(FatalLevel) - assert.Equal(t, true, log.IsPanicEnabled()) - assert.Equal(t, true, log.IsFatalEnabled()) - assert.Equal(t, false, log.IsErrorEnabled()) - assert.Equal(t, false, log.IsWarnEnabled()) - assert.Equal(t, false, log.IsInfoEnabled()) - assert.Equal(t, false, log.IsDebugEnabled()) + assert.Equal(t, true, log.IsLevelEnabled(PanicLevel)) + assert.Equal(t, true, log.IsLevelEnabled(FatalLevel)) + assert.Equal(t, false, log.IsLevelEnabled(ErrorLevel)) + assert.Equal(t, false, log.IsLevelEnabled(WarnLevel)) + assert.Equal(t, false, log.IsLevelEnabled(InfoLevel)) + assert.Equal(t, false, log.IsLevelEnabled(DebugLevel)) log.SetLevel(ErrorLevel) - assert.Equal(t, true, log.IsPanicEnabled()) - assert.Equal(t, true, log.IsFatalEnabled()) - assert.Equal(t, true, log.IsErrorEnabled()) - assert.Equal(t, false, log.IsWarnEnabled()) - assert.Equal(t, false, log.IsInfoEnabled()) - assert.Equal(t, false, log.IsDebugEnabled()) + assert.Equal(t, true, log.IsLevelEnabled(PanicLevel)) + assert.Equal(t, true, log.IsLevelEnabled(FatalLevel)) + assert.Equal(t, true, log.IsLevelEnabled(ErrorLevel)) + assert.Equal(t, false, log.IsLevelEnabled(WarnLevel)) + assert.Equal(t, false, log.IsLevelEnabled(InfoLevel)) + assert.Equal(t, false, log.IsLevelEnabled(DebugLevel)) log.SetLevel(WarnLevel) - assert.Equal(t, true, log.IsPanicEnabled()) - assert.Equal(t, true, log.IsFatalEnabled()) - assert.Equal(t, true, log.IsErrorEnabled()) - assert.Equal(t, true, log.IsWarnEnabled()) - assert.Equal(t, false, log.IsInfoEnabled()) - assert.Equal(t, false, log.IsDebugEnabled()) + assert.Equal(t, true, log.IsLevelEnabled(PanicLevel)) + assert.Equal(t, true, log.IsLevelEnabled(FatalLevel)) + assert.Equal(t, true, log.IsLevelEnabled(ErrorLevel)) + assert.Equal(t, true, log.IsLevelEnabled(WarnLevel)) + assert.Equal(t, false, log.IsLevelEnabled(InfoLevel)) + assert.Equal(t, false, log.IsLevelEnabled(DebugLevel)) log.SetLevel(InfoLevel) - assert.Equal(t, true, log.IsPanicEnabled()) - assert.Equal(t, true, log.IsFatalEnabled()) - assert.Equal(t, true, log.IsErrorEnabled()) - assert.Equal(t, true, log.IsWarnEnabled()) - assert.Equal(t, true, log.IsInfoEnabled()) - assert.Equal(t, false, log.IsDebugEnabled()) + assert.Equal(t, true, log.IsLevelEnabled(PanicLevel)) + assert.Equal(t, true, log.IsLevelEnabled(FatalLevel)) + assert.Equal(t, true, log.IsLevelEnabled(ErrorLevel)) + assert.Equal(t, true, log.IsLevelEnabled(WarnLevel)) + assert.Equal(t, true, log.IsLevelEnabled(InfoLevel)) + assert.Equal(t, false, log.IsLevelEnabled(DebugLevel)) log.SetLevel(DebugLevel) - assert.Equal(t, true, log.IsPanicEnabled()) - assert.Equal(t, true, log.IsFatalEnabled()) - assert.Equal(t, true, log.IsErrorEnabled()) - assert.Equal(t, true, log.IsWarnEnabled()) - assert.Equal(t, true, log.IsInfoEnabled()) - assert.Equal(t, true, log.IsDebugEnabled()) + assert.Equal(t, true, log.IsLevelEnabled(PanicLevel)) + assert.Equal(t, true, log.IsLevelEnabled(FatalLevel)) + assert.Equal(t, true, log.IsLevelEnabled(ErrorLevel)) + assert.Equal(t, true, log.IsLevelEnabled(WarnLevel)) + assert.Equal(t, true, log.IsLevelEnabled(InfoLevel)) + assert.Equal(t, true, log.IsLevelEnabled(DebugLevel)) }