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  }