diff --git a/logger/default.go b/logger/default.go index 6fa2b009..ce4498ef 100644 --- a/logger/default.go +++ b/logger/default.go @@ -13,7 +13,6 @@ import ( type defaultLogger struct { sync.RWMutex opts Options - err error } // Init(opts...) should only overwrite provided options @@ -35,13 +34,6 @@ func (l *defaultLogger) Fields(fields map[string]interface{}) Logger { return l } -func (l *defaultLogger) Error(err error) Logger { - l.Lock() - l.err = err - l.Unlock() - return l -} - func copyFields(src map[string]interface{}) map[string]interface{} { dst := make(map[string]interface{}, len(src)) for k, v := range src { @@ -58,9 +50,6 @@ func (l *defaultLogger) Log(level Level, v ...interface{}) { l.RLock() fields := copyFields(l.opts.Fields) - if l.err != nil { - fields["error"] = l.err.Error() - } l.RUnlock() fields["level"] = level.String() @@ -88,9 +77,6 @@ func (l *defaultLogger) Logf(level Level, format string, v ...interface{}) { l.RLock() fields := copyFields(l.opts.Fields) - if l.err != nil { - fields["error"] = l.err.Error() - } l.RUnlock() fields["level"] = level.String() diff --git a/logger/helper.go b/logger/helper.go new file mode 100644 index 00000000..90a9ea13 --- /dev/null +++ b/logger/helper.go @@ -0,0 +1,61 @@ +package logger + +type Helper struct { + Logger +} + +func NewHelper(log Logger) *Helper { + return &Helper{log} +} + +func (h *Helper) Info(args ...interface{}) { + h.Logger.Log(InfoLevel, args...) +} + +func (h *Helper) Infof(template string, args ...interface{}) { + h.Logger.Logf(InfoLevel, template, args...) +} + +func (h *Helper) Trace(args ...interface{}) { + h.Logger.Log(TraceLevel, args...) +} + +func (h *Helper) Tracef(template string, args ...interface{}) { + h.Logger.Logf(TraceLevel, template, args...) +} + +func (h *Helper) Debug(args ...interface{}) { + h.Logger.Log(DebugLevel, args...) +} + +func (h *Helper) Debugf(template string, args ...interface{}) { + h.Logger.Logf(DebugLevel, template, args...) +} + +func (h *Helper) Warn(args ...interface{}) { + h.Logger.Log(WarnLevel, args...) +} + +func (h *Helper) Warnf(template string, args ...interface{}) { + h.Logger.Logf(WarnLevel, template, args...) +} + +func (h *Helper) Error(args ...interface{}) { + h.Logger.Log(ErrorLevel, args...) +} + +func (h *Helper) Errorf(template string, args ...interface{}) { + h.Logger.Logf(ErrorLevel, template, args...) +} + +func (h *Helper) Fatal(args ...interface{}) { + h.Logger.Log(ErrorLevel, args...) +} + +func (h *Helper) Fatalf(template string, args ...interface{}) { + h.Logger.Logf(ErrorLevel, template, args...) +} + +func (h *Helper) WithError(err error) *Helper { + return &Helper{h.Logger.Fields(map[string]interface{}{"error": err})} +} diff --git a/logger/logger.go b/logger/logger.go index 1c0dc826..ad3b41a1 100644 --- a/logger/logger.go +++ b/logger/logger.go @@ -3,7 +3,7 @@ package logger var ( // Default logger - DefaultLogger Logger = NewLogger() + DefaultLogger Logger = NewHelper(NewLogger()) ) // Logger is a generic logging interface @@ -12,8 +12,6 @@ type Logger interface { Init(options ...Option) error // The Logger options Options() Options - // Error set `error` field to be logged - Error(err error) Logger // Fields set fields to always be logged Fields(fields map[string]interface{}) Logger // Log writes a log entry @@ -43,7 +41,3 @@ func Logf(level Level, format string, v ...interface{}) { func String() string { return DefaultLogger.String() } - -func WithError(err error) Logger { - return DefaultLogger.Error(err) -} diff --git a/logger/logger_test.go b/logger/logger_test.go new file mode 100644 index 00000000..95d9c388 --- /dev/null +++ b/logger/logger_test.go @@ -0,0 +1,9 @@ +package logger + +import "testing" + +func TestLogger(t *testing.T) { + l := NewLogger(WithLevel(TraceLevel)) + h := NewHelper(l) + h.Trace("trace level") +}