From cc236202b15b2260c26c0fd6f88a6c8a9dac90e2 Mon Sep 17 00:00:00 2001 From: Taras Postument Date: Fri, 21 Feb 2020 17:52:49 +0200 Subject: [PATCH] allow to use specific logrus level in the adaptor --- log/logrus/logrus_logger.go | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/log/logrus/logrus_logger.go b/log/logrus/logrus_logger.go index c8a11d569..7a8f5efc6 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.InfoLevel: + 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 }