diff --git a/log/logrus/logrus_logger.go b/log/logrus/logrus_logger.go index c8a11d569..94f75180d 100644 --- a/log/logrus/logrus_logger.go +++ b/log/logrus/logrus_logger.go @@ -12,13 +12,20 @@ import ( type logrusLogger struct { logrus.FieldLogger + logrus.Level } var errMissingValue = errors.New("(MISSING)") // NewLogrusLogger returns a go-kit log.Logger that sends log events to a Logrus logger. func NewLogrusLogger(logger logrus.FieldLogger) log.Logger { - return &logrusLogger{logger} + return &logrusLogger{logger, logrus.InfoLevel} +} + +// NewLogrusLoggerWithLevel returns a go-kit log.Logger that sends log events to a Logrus logger, which +// will be logged with provided error level +func NewLogrusLoggerWithLevel(logger logrus.FieldLogger, level logrus.Level) log.Logger { + return &logrusLogger{logger, level} } func (l logrusLogger) Log(keyvals ...interface{}) error { @@ -30,6 +37,19 @@ func (l logrusLogger) Log(keyvals ...interface{}) error { fields[fmt.Sprint(keyvals[i])] = errMissingValue } } - l.WithFields(fields).Info() + + switch l.Level { + case logrus.Info: + l.WithFields(fields).Info() + case logrus.ErrorLevel: + l.WithFields(fields).Error() + case logrus.DebugLevel: + l.WithFields(fields).Debug() + case logrus.WarnLevel: + l.WithFields(fields).Warn() + default: + l.WithFields(fields).Print() + } + return nil }