go-log/logger_level.go

46 lines
1.2 KiB
Go

package log
const (
alertFlag = 0b00000001 // L1
errorFlag = 0b00000001 // L1
warnFlag = 0b00000010 // L2
highlightFlag = 0b00000100 // L3
informFlag = 0b00001000 // L4
logFlag = 0b00010000 // L5
traceFlag = 0b00100000 // L6
)
// Level returns a leveled logger, level can be from 1 to 6.
// Level 1 — Alert or Error
// Level 2 — Warn
// Level 3 — Highlight
// Level 4 — Inform
// Level 5 — Log
// Level 6 — Trace
// Anything above 6 as level will be considered Level 6.
// Pass 0 to output no logs.
func (l myLogger) Level(level uint8) Logger {
logger := myLogger{Writer: l.Writer, prefix: l.prefix, begin: l.begin}
switch level {
case 0:
logger.level = 0
case 1:
logger.level = alertFlag | errorFlag
case 2:
logger.level = alertFlag | errorFlag | warnFlag
case 3:
logger.level = alertFlag | errorFlag | warnFlag | highlightFlag
case 4:
logger.level = alertFlag | errorFlag | warnFlag | highlightFlag | informFlag
case 5:
logger.level = alertFlag | errorFlag | warnFlag | highlightFlag | informFlag | logFlag
default:
logger.level = alertFlag | errorFlag | warnFlag | highlightFlag | informFlag | logFlag | traceFlag
}
return logger
}
func hasLevel(b uint8, flag uint8) bool {
return b&flag != 0
}