67 lines · 1.2 KB · Go
RawDownload
package log import (	"fmt"	"strings") // Level defines log levels.type Level uint8 // String returns name of the level.func (l Level) String() string {	switch l {	case MuteLevel:		return "MUTE"	case FatalLevel:		return "FATAL"	case PanicLevel:		return "PANIC"	case ErrorLevel:		return "ERROR"	case WarnLevel:		return "WARN"	case InfoLevel:		return "INFO"	case DebugLevel:		return "DEBUG"	}	return ""} const (	// MuteLevel disables the logger.	MuteLevel Level = iota	// FatalLevel defines fatal log level.	FatalLevel	// PanicLevel defines panic log level.	PanicLevel	// ErrorLevel defines error log level.	ErrorLevel	// WarnLevel defines warn log level.	WarnLevel	// InfoLevel defines info log level.	InfoLevel	// DebugLevel defines debug log level.	DebugLevel) // ParseLevel takes a string level and returns the log level constant.func ParseLevel(level string) (Level, error) {	switch strings.ToUpper(level) {	case "FATAL":		return FatalLevel, nil	case "PANIC":		return PanicLevel, nil	case "ERROR":		return ErrorLevel, nil	case "WARN":		return WarnLevel, nil	case "INFO":		return InfoLevel, nil	case "DEBUG":		return DebugLevel, nil	} 	return MuteLevel, fmt.Errorf(`"%q" is not a valid log Level`, level)}