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

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
}