Mercurial > yakumo_izuru > aya
comparison vendor/github.com/sirupsen/logrus/logrus.go @ 66:787b5ee0289d draft
Use vendored modules
Signed-off-by: Izuru Yakumo <yakumo.izuru@chaotic.ninja>
| author | yakumo.izuru |
|---|---|
| date | Sun, 23 Jul 2023 13:18:53 +0000 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| 65:6d985efa0f7a | 66:787b5ee0289d |
|---|---|
| 1 package logrus | |
| 2 | |
| 3 import ( | |
| 4 "fmt" | |
| 5 "log" | |
| 6 "strings" | |
| 7 ) | |
| 8 | |
| 9 // Fields type, used to pass to `WithFields`. | |
| 10 type Fields map[string]interface{} | |
| 11 | |
| 12 // Level type | |
| 13 type Level uint32 | |
| 14 | |
| 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 { | |
| 18 return string(b) | |
| 19 } else { | |
| 20 return "unknown" | |
| 21 } | |
| 22 } | |
| 23 | |
| 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) { | |
| 27 case "panic": | |
| 28 return PanicLevel, nil | |
| 29 case "fatal": | |
| 30 return FatalLevel, nil | |
| 31 case "error": | |
| 32 return ErrorLevel, nil | |
| 33 case "warn", "warning": | |
| 34 return WarnLevel, nil | |
| 35 case "info": | |
| 36 return InfoLevel, nil | |
| 37 case "debug": | |
| 38 return DebugLevel, nil | |
| 39 case "trace": | |
| 40 return TraceLevel, nil | |
| 41 } | |
| 42 | |
| 43 var l Level | |
| 44 return l, fmt.Errorf("not a valid logrus Level: %q", lvl) | |
| 45 } | |
| 46 | |
| 47 // UnmarshalText implements encoding.TextUnmarshaler. | |
| 48 func (level *Level) UnmarshalText(text []byte) error { | |
| 49 l, err := ParseLevel(string(text)) | |
| 50 if err != nil { | |
| 51 return err | |
| 52 } | |
| 53 | |
| 54 *level = l | |
| 55 | |
| 56 return nil | |
| 57 } | |
| 58 | |
| 59 func (level Level) MarshalText() ([]byte, error) { | |
| 60 switch level { | |
| 61 case TraceLevel: | |
| 62 return []byte("trace"), nil | |
| 63 case DebugLevel: | |
| 64 return []byte("debug"), nil | |
| 65 case InfoLevel: | |
| 66 return []byte("info"), nil | |
| 67 case WarnLevel: | |
| 68 return []byte("warning"), nil | |
| 69 case ErrorLevel: | |
| 70 return []byte("error"), nil | |
| 71 case FatalLevel: | |
| 72 return []byte("fatal"), nil | |
| 73 case PanicLevel: | |
| 74 return []byte("panic"), nil | |
| 75 } | |
| 76 | |
| 77 return nil, fmt.Errorf("not a valid logrus level %d", level) | |
| 78 } | |
| 79 | |
| 80 // A constant exposing all logging levels | |
| 81 var AllLevels = []Level{ | |
| 82 PanicLevel, | |
| 83 FatalLevel, | |
| 84 ErrorLevel, | |
| 85 WarnLevel, | |
| 86 InfoLevel, | |
| 87 DebugLevel, | |
| 88 TraceLevel, | |
| 89 } | |
| 90 | |
| 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()`. | |
| 93 const ( | |
| 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. | |
| 99 FatalLevel | |
| 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. | |
| 102 ErrorLevel | |
| 103 // WarnLevel level. Non-critical entries that deserve eyes. | |
| 104 WarnLevel | |
| 105 // InfoLevel level. General operational entries about what's going on inside the | |
| 106 // application. | |
| 107 InfoLevel | |
| 108 // DebugLevel level. Usually only enabled when debugging. Very verbose logging. | |
| 109 DebugLevel | |
| 110 // TraceLevel level. Designates finer-grained informational events than the Debug. | |
| 111 TraceLevel | |
| 112 ) | |
| 113 | |
| 114 // Won't compile if StdLogger can't be realized by a log.Logger | |
| 115 var ( | |
| 116 _ StdLogger = &log.Logger{} | |
| 117 _ StdLogger = &Entry{} | |
| 118 _ StdLogger = &Logger{} | |
| 119 ) | |
| 120 | |
| 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{}) | |
| 128 | |
| 129 Fatal(...interface{}) | |
| 130 Fatalf(string, ...interface{}) | |
| 131 Fatalln(...interface{}) | |
| 132 | |
| 133 Panic(...interface{}) | |
| 134 Panicf(string, ...interface{}) | |
| 135 Panicln(...interface{}) | |
| 136 } | |
| 137 | |
| 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 | |
| 143 | |
| 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{}) | |
| 152 | |
| 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{}) | |
| 161 | |
| 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{}) | |
| 170 | |
| 171 // IsDebugEnabled() bool | |
| 172 // IsInfoEnabled() bool | |
| 173 // IsWarnEnabled() bool | |
| 174 // IsErrorEnabled() bool | |
| 175 // IsFatalEnabled() bool | |
| 176 // IsPanicEnabled() bool | |
| 177 } | |
| 178 | |
| 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 { | |
| 182 FieldLogger | |
| 183 Tracef(format string, args ...interface{}) | |
| 184 Trace(args ...interface{}) | |
| 185 Traceln(args ...interface{}) | |
| 186 } |
