9 // Fields type, used to pass to `WithFields`.
10 type Fields map[string]interface{}
15 // Convert the Level to a string. E.g. PanicLevel becomes "panic".
16 func (level Level) String() string {
35 // ParseLevel takes a string level and returns the Logrus log level constant.
36 func ParseLevel(lvl string) (Level, error) {
37 switch strings.ToLower(lvl) {
39 return PanicLevel, nil
41 return FatalLevel, nil
43 return ErrorLevel, nil
44 case "warn", "warning":
49 return DebugLevel, nil
53 return l, fmt.Errorf("not a valid logrus Level: %q", lvl)
56 // A constant exposing all logging levels
57 var AllLevels = []Level{
66 // These are the different logging levels. You can set the logging level to log
67 // on your instance of logger, obtained with `logrus.New()`.
69 // PanicLevel level, highest level of severity. Logs and then calls panic with the
70 // message passed to Debug, Info, ...
71 PanicLevel Level = iota
72 // FatalLevel level. Logs and then calls `os.Exit(1)`. It will exit even if the
73 // logging level is set to Panic.
75 // ErrorLevel level. Logs. Used for errors that should definitely be noted.
76 // Commonly used for hooks to send errors to an error tracking service.
78 // WarnLevel level. Non-critical entries that deserve eyes.
80 // InfoLevel level. General operational entries about what's going on inside the
83 // DebugLevel level. Usually only enabled when debugging. Very verbose logging.
87 // Won't compile if StdLogger can't be realized by a log.Logger
89 _ StdLogger = &log.Logger{}
90 _ StdLogger = &Entry{}
91 _ StdLogger = &Logger{}
94 // StdLogger is what your logrus-enabled library should take, that way
95 // it'll accept a stdlib logger and a logrus logger. There's no standard
96 // interface, this is the closest we get, unfortunately.
97 type StdLogger interface {
99 Printf(string, ...interface{})
100 Println(...interface{})
102 Fatal(...interface{})
103 Fatalf(string, ...interface{})
104 Fatalln(...interface{})
106 Panic(...interface{})
107 Panicf(string, ...interface{})
108 Panicln(...interface{})
111 // The FieldLogger interface generalizes the Entry and Logger types
112 type FieldLogger interface {
113 WithField(key string, value interface{}) *Entry
114 WithFields(fields Fields) *Entry
115 WithError(err error) *Entry
117 Debugf(format string, args ...interface{})
118 Infof(format string, args ...interface{})
119 Printf(format string, args ...interface{})
120 Warnf(format string, args ...interface{})
121 Warningf(format string, args ...interface{})
122 Errorf(format string, args ...interface{})
123 Fatalf(format string, args ...interface{})
124 Panicf(format string, args ...interface{})
126 Debug(args ...interface{})
127 Info(args ...interface{})
128 Print(args ...interface{})
129 Warn(args ...interface{})
130 Warning(args ...interface{})
131 Error(args ...interface{})
132 Fatal(args ...interface{})
133 Panic(args ...interface{})
135 Debugln(args ...interface{})
136 Infoln(args ...interface{})
137 Println(args ...interface{})
138 Warnln(args ...interface{})
139 Warningln(args ...interface{})
140 Errorln(args ...interface{})
141 Fatalln(args ...interface{})
142 Panicln(args ...interface{})