summaryrefslogtreecommitdiff
path: root/levels.go
blob: 6b9213e69c4d2f3fd6c146397b078249ebceb946 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
package logging

type LevelEnum uint16

const (
	None LevelEnum = iota
	Error
	Warn
	Info
	Debug
)

type levelInfo struct {
	abbrev string
	color  string
}

var (
	levelInfos = map[LevelEnum]levelInfo{
		Error: {"ERR", Red},
		Warn:  {"WARN", Yellow},
		Info:  {"INFO", Cyan},
		Debug: {"DEBUG", Green},
	}
)

func (s LevelEnum) Info() levelInfo {
	info, ok := levelInfos[s]
	if !ok {
		return levelInfo{"UNK", White}
	}
	return info
}

func (s LevelEnum) Format() string {
	info := s.Info()
	return colorize("["+info.abbrev+"]", info.color)
}