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
This commit is contained in:
Logan HAUSPIE
2018-05-30 01:47:39 +02:00
parent ea8897e799
commit 4225d694ba
5 changed files with 169 additions and 39 deletions
+51
View File
@@ -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())
}