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 {
17
if b, err := level.MarshalText(); err == nil {
24
// ParseLevel takes a string level and returns the Logrus log level constant.
25
func ParseLevel(lvl string) (Level, error) {
26
switch strings.ToLower(lvl) {
28
return PanicLevel, nil
30
return FatalLevel, nil
32
return ErrorLevel, nil
33
case "warn", "warning":
38
return DebugLevel, nil
40
return TraceLevel, nil
44
return l, fmt.Errorf("not a valid logrus Level: %q", lvl)
47
// UnmarshalText implements encoding.TextUnmarshaler.
48
func (level *Level) UnmarshalText(text []byte) error {
49
l, err := ParseLevel(string(text))
59
func (level Level) MarshalText() ([]byte, error) {
62
return []byte("trace"), nil
64
return []byte("debug"), nil
66
return []byte("info"), nil
68
return []byte("warning"), nil
70
return []byte("error"), nil
72
return []byte("fatal"), nil
74
return []byte("panic"), nil
77
return nil, fmt.Errorf("not a valid logrus level %d", level)
80
// A constant exposing all logging levels
81
var AllLevels = []Level{
91
// These are the different logging levels. You can set the logging level to log
92
// on your instance of logger, obtained with `logrus.New()`.
94
// PanicLevel level, highest level of severity. Logs and then calls panic with the
95
// message passed to Debug, Info, ...
96
PanicLevel Level = iota
97
// FatalLevel level. Logs and then calls `logger.Exit(1)`. It will exit even if the
98
// logging level is set to Panic.
100
// ErrorLevel level. Logs. Used for errors that should definitely be noted.
101
// Commonly used for hooks to send errors to an error tracking service.
103
// WarnLevel level. Non-critical entries that deserve eyes.
105
// InfoLevel level. General operational entries about what's going on inside the
108
// DebugLevel level. Usually only enabled when debugging. Very verbose logging.
110
// TraceLevel level. Designates finer-grained informational events than the Debug.
114
// Won't compile if StdLogger can't be realized by a log.Logger
116
_ StdLogger = &log.Logger{}
117
_ StdLogger = &Entry{}
118
_ StdLogger = &Logger{}
121
// StdLogger is what your logrus-enabled library should take, that way
122
// it'll accept a stdlib logger and a logrus logger. There's no standard
123
// interface, this is the closest we get, unfortunately.
124
type StdLogger interface {
125
Print(...interface{})
126
Printf(string, ...interface{})
127
Println(...interface{})
129
Fatal(...interface{})
130
Fatalf(string, ...interface{})
131
Fatalln(...interface{})
133
Panic(...interface{})
134
Panicf(string, ...interface{})
135
Panicln(...interface{})
138
// The FieldLogger interface generalizes the Entry and Logger types
139
type FieldLogger interface {
140
WithField(key string, value interface{}) *Entry
141
WithFields(fields Fields) *Entry
142
WithError(err error) *Entry
144
Debugf(format string, args ...interface{})
145
Infof(format string, args ...interface{})
146
Printf(format string, args ...interface{})
147
Warnf(format string, args ...interface{})
148
Warningf(format string, args ...interface{})
149
Errorf(format string, args ...interface{})
150
Fatalf(format string, args ...interface{})
151
Panicf(format string, args ...interface{})
153
Debug(args ...interface{})
154
Info(args ...interface{})
155
Print(args ...interface{})
156
Warn(args ...interface{})
157
Warning(args ...interface{})
158
Error(args ...interface{})
159
Fatal(args ...interface{})
160
Panic(args ...interface{})
162
Debugln(args ...interface{})
163
Infoln(args ...interface{})
164
Println(args ...interface{})
165
Warnln(args ...interface{})
166
Warningln(args ...interface{})
167
Errorln(args ...interface{})
168
Fatalln(args ...interface{})
169
Panicln(args ...interface{})
171
// IsDebugEnabled() bool
172
// IsInfoEnabled() bool
173
// IsWarnEnabled() bool
174
// IsErrorEnabled() bool
175
// IsFatalEnabled() bool
176
// IsPanicEnabled() bool
179
// Ext1FieldLogger (the first extension to FieldLogger) is superfluous, it is
180
// here for consistancy. Do not use. Use Logger or Entry instead.
181
type Ext1FieldLogger interface {
183
Tracef(format string, args ...interface{})
184
Trace(args ...interface{})
185
Traceln(args ...interface{})