diff --git a/log.go b/log.go index 81a7fcb..95c7c40 100644 --- a/log.go +++ b/log.go @@ -70,6 +70,11 @@ func (logger *ZapEventLogger) Warningf(format string, args ...interface{}) { logger.skipLogger.Warnf(format, args...) } +// LevelEnabled returns true if the LogLevel is enabled for the logger. +func (logger *ZapEventLogger) LevelEnabled(level LogLevel) bool { + return logger.Level().Enabled(zapcore.Level(level)) +} + // FormatRFC3339 returns the given time in UTC with RFC3999Nano format. func FormatRFC3339(t time.Time) string { return t.UTC().Format(time.RFC3339Nano) diff --git a/log_level_test.go b/log_level_test.go index f17aee1..abb3622 100644 --- a/log_level_test.go +++ b/log_level_test.go @@ -43,8 +43,12 @@ func TestLogLevel(t *testing.T) { } }() logger.Debugw("foo") + require.True(t, logger.LevelEnabled(LevelError)) + require.False(t, logger.LevelEnabled(LevelDebug)) err := SetLogLevel(subsystem, "debug") require.NoError(t, err) + require.True(t, logger.LevelEnabled(LevelError)) + require.True(t, logger.LevelEnabled(LevelDebug)) logger.Debugw("bar") SetAllLoggers(LevelInfo)