60 lines
887 B
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
|
|
}
|