go_dreamfactory/lego/sys/log/level.go

60 lines
887 B
Go

package log
import "fmt"
type LevelEnabler interface {
Enabled(Loglevel) bool
}
type Loglevel int8
const (
PanicLevel Loglevel = iota
FatalLevel
ErrorLevel
WarnLevel
InfoLevel
DebugLevel
)
func (l Loglevel) String() string {
switch l {
case DebugLevel:
return "debug"
case InfoLevel:
return "info"
case WarnLevel:
return "warn"
case ErrorLevel:
return "error"
case PanicLevel:
return "panic"
case FatalLevel:
return "fatal"
default:
return fmt.Sprintf("Level(%d)", l)
}
}
func (l Loglevel) CapitalString() string {
switch l {
case DebugLevel:
return "DEBUG"
case InfoLevel:
return "INFO"
case WarnLevel:
return "WARN"
case ErrorLevel:
return "ERROR"
case PanicLevel:
return "PANIC"
case FatalLevel:
return "FATAL"
default:
return fmt.Sprintf("LEVEL(%d)", l)
}
}
func (l Loglevel) Enabled(lvl Loglevel) bool {
return lvl <= l
}