package dilog import ( "io/ioutil" "github.com/sirupsen/logrus" ) // Fields are log fields to log, it is an map[string]interface{} type Fields = logrus.Fields // Discard is the always present nil-logger var Discard = NewNilLogger() // Logger is the generic logger type which has all required logging attributes type Logger interface { WithField(key string, value interface{}) Logger WithFields(fields Fields) Logger WithError(err error) Logger Debug(args ...interface{}) Info(args ...interface{}) Warning(args ...interface{}) Error(args ...interface{}) Fatal(args ...interface{}) Panic(args ...interface{}) } // NewNilLogger returns a /dev/null logger which logs to nowhere func NewNilLogger() Logger { logger := logrus.New() logger.Out = ioutil.Discard return &Logrus{logrus.NewEntry(logger)} }