github.com/JohanShen/go-utils@v1.1.4-0.20201117124024-901319a2b2a0/logger/level.go (about) 1 package logger 2 3 import "fmt" 4 5 // 日志级别 6 type Level int8 7 8 const ( 9 // 调试级别 10 // 调试级别的日志体积会比较大,一般生成环境下禁用 11 DebugLevel Level = iota - 1 12 // InfoLevel is the default logging priority. 13 InfoLevel 14 // WarnLevel logs are more important than Info, but don't need individual 15 // human review. 16 WarnLevel 17 // ErrorLevel logs are high-priority. If an application is running smoothly, 18 // it shouldn't generate any error-level logs. 19 ErrorLevel 20 // DPanicLevel logs are particularly important errors. In development the 21 // logger panics after writing the message. 22 DPanicLevel 23 // PanicLevel logs a message, then panics. 24 PanicLevel 25 // FatalLevel logs a message, then calls os.Exit(1). 26 FatalLevel 27 28 _minLevel = DebugLevel 29 _maxLevel = FatalLevel 30 ) 31 32 // 返回日志级别的小写字符串 33 func (l Level) String() string { 34 switch l { 35 case DebugLevel: 36 return "debug" 37 case InfoLevel: 38 return "info" 39 case WarnLevel: 40 return "warn" 41 case ErrorLevel: 42 return "error" 43 case DPanicLevel: 44 return "dpanic" 45 case PanicLevel: 46 return "panic" 47 case FatalLevel: 48 return "fatal" 49 default: 50 return fmt.Sprintf("Level(%d)", l) 51 } 52 } 53 54 // CapitalString returns an all-caps ASCII representation of the log level. 55 func (l Level) CapitalString() string { 56 // Printing levels in all-caps is common enough that we should export this 57 // functionality. 58 switch l { 59 case DebugLevel: 60 return "DEBUG" 61 case InfoLevel: 62 return "INFO" 63 case WarnLevel: 64 return "WARN" 65 case ErrorLevel: 66 return "ERROR" 67 case DPanicLevel: 68 return "DPANIC" 69 case PanicLevel: 70 return "PANIC" 71 case FatalLevel: 72 return "FATAL" 73 default: 74 return fmt.Sprintf("LEVEL(%d)", l) 75 } 76 }