pkg/xcontext/logger/logadapter/logrus/adapter.go (57 lines of code) (raw):

// Copyright (c) Facebook, Inc. and its affiliates. // // This source code is licensed under the MIT license found in the // LICENSE file in the root directory of this source tree. package logrus import ( "github.com/sirupsen/logrus" "github.com/facebookincubator/contest/pkg/xcontext/logger" ) func init() { logger.RegisterAdapter(Adapter) } type adapter struct{} var ( _ logger.Adapter = Adapter ) // Adapter is implementation of logger.Adapter for logrus. var Adapter = (*adapter)(nil) // Convert implements logger.Adapter. func (_ *adapter) Convert(backend interface{}) logger.Logger { switch backend := backend.(type) { case *logrus.Entry: return wrap(backend) case *logrus.Logger: return wrap(logrus.NewEntry(backend)) } return nil } // Level converts our logging level to logrus logging level. func (_ *adapter) Level(level logger.Level) logrus.Level { switch level { case logger.LevelDebug: return logrus.DebugLevel case logger.LevelInfo: return logrus.InfoLevel case logger.LevelWarning: return logrus.WarnLevel case logger.LevelError: return logrus.ErrorLevel case logger.LevelPanic: return logrus.PanicLevel case logger.LevelFatal: return logrus.FatalLevel case logger.LevelUndefined: } return logrus.PanicLevel } // Level converts logrus logging level to our logging level. func (_ *adapter) ConvertLevel(level logrus.Level) logger.Level { switch level { case logrus.DebugLevel: return logger.LevelDebug case logrus.InfoLevel: return logger.LevelInfo case logrus.WarnLevel: return logger.LevelWarning case logrus.ErrorLevel: return logger.LevelError case logrus.PanicLevel: return logger.LevelPanic case logrus.FatalLevel: return logger.LevelFatal } return logger.LevelUndefined }