diff --git a/wrap.go b/wrap.go index 5ec51b2..27450ae 100644 --- a/wrap.go +++ b/wrap.go @@ -41,8 +41,10 @@ var _ StdCompatLogger = &log.Logger{} type Logger struct { *zerolog.Logger - prefix string *sync.RWMutex + + prefix string + printLevel zerolog.Level } func (l *Logger) SetPrefix(prefix string) { @@ -51,6 +53,12 @@ func (l *Logger) SetPrefix(prefix string) { l.Unlock() } +func (l *Logger) SetPrintLevel(level zerolog.Level) { + l.Lock() + l.printLevel = level + l.Unlock() +} + func (l *Logger) Prefix() string { l.RLock() defer l.RUnlock() @@ -59,7 +67,19 @@ func (l *Logger) Prefix() string { func (l *Logger) Println(v ...interface{}) { l.RLock() - l.Logger.Info().Msg(fmt.Sprintln(v...)) + l.Logger.WithLevel(l.printLevel).Msg(fmt.Sprintln(v...)) + l.RUnlock() +} + +func (l *Logger) Printf(format string, v ...interface{}) { + l.RLock() + l.Logger.WithLevel(l.printLevel).Msgf(format, v...) + l.RUnlock() +} + +func (l *Logger) Print(v ...interface{}) { + l.RLock() + l.Logger.WithLevel(l.printLevel).Msg(fmt.Sprint(v...)) l.RUnlock() } @@ -224,7 +244,8 @@ func (h prefixHook) Run(e *zerolog.Event, _ zerolog.Level, _ string) { func Wrap(l zerolog.Logger) *Logger { wrapped := &Logger{ - RWMutex: &sync.RWMutex{}, + RWMutex: &sync.RWMutex{}, + printLevel: zerolog.InfoLevel, } p := prefixHook{wrapped} l = l.Hook(p)