58 lines
1.1 KiB
Go
58 lines
1.1 KiB
Go
package log
|
|
|
|
import "strings"
|
|
|
|
// Level is a logging level.
|
|
type Level int32
|
|
|
|
const (
|
|
// DebugLevel is the debug level.
|
|
DebugLevel Level = iota - 1
|
|
// InfoLevel is the info level.
|
|
InfoLevel
|
|
// WarnLevel is the warn level.
|
|
WarnLevel
|
|
// ErrorLevel is the error level.
|
|
ErrorLevel
|
|
// FatalLevel is the fatal level.
|
|
FatalLevel
|
|
// noLevel is used with log.Print.
|
|
noLevel
|
|
)
|
|
|
|
// String returns the string representation of the level.
|
|
func (l Level) String() string {
|
|
switch l {
|
|
case DebugLevel:
|
|
return "debug"
|
|
case InfoLevel:
|
|
return "info"
|
|
case WarnLevel:
|
|
return "warn"
|
|
case ErrorLevel:
|
|
return "error"
|
|
case FatalLevel:
|
|
return "fatal"
|
|
default:
|
|
return ""
|
|
}
|
|
}
|
|
|
|
// ParseLevel converts level in string to Level type. Default level is InfoLevel.
|
|
func ParseLevel(level string) Level {
|
|
switch strings.ToLower(level) {
|
|
case DebugLevel.String():
|
|
return DebugLevel
|
|
case InfoLevel.String():
|
|
return InfoLevel
|
|
case WarnLevel.String():
|
|
return WarnLevel
|
|
case ErrorLevel.String():
|
|
return ErrorLevel
|
|
case FatalLevel.String():
|
|
return FatalLevel
|
|
default:
|
|
return InfoLevel
|
|
}
|
|
}
|