You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
59 lines
887 B
59 lines
887 B
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
|
|
}
|
|
|