...
1 package term_test
2
3 import (
4 "errors"
5 "os"
6
7 "github.com/go-kit/kit/log"
8 "github.com/go-kit/kit/log/term"
9 )
10
11 func ExampleNewLogger_redErrors() {
12
13 colorFn := func(keyvals ...interface{}) term.FgBgColor {
14 for i := 1; i < len(keyvals); i += 2 {
15 if _, ok := keyvals[i].(error); ok {
16 return term.FgBgColor{Fg: term.White, Bg: term.Red}
17 }
18 }
19 return term.FgBgColor{}
20 }
21
22 logger := term.NewLogger(os.Stdout, log.NewLogfmtLogger, colorFn)
23
24 logger.Log("msg", "default color", "err", nil)
25 logger.Log("msg", "colored because of error", "err", errors.New("coloring error"))
26 }
27
28 func ExampleNewLogger_levelColors() {
29
30 colorFn := func(keyvals ...interface{}) term.FgBgColor {
31 for i := 0; i < len(keyvals)-1; i += 2 {
32 if keyvals[i] != "level" {
33 continue
34 }
35 switch keyvals[i+1] {
36 case "debug":
37 return term.FgBgColor{Fg: term.DarkGray}
38 case "info":
39 return term.FgBgColor{Fg: term.Gray}
40 case "warn":
41 return term.FgBgColor{Fg: term.Yellow}
42 case "error":
43 return term.FgBgColor{Fg: term.Red}
44 case "crit":
45 return term.FgBgColor{Fg: term.Gray, Bg: term.DarkRed}
46 default:
47 return term.FgBgColor{}
48 }
49 }
50 return term.FgBgColor{}
51 }
52
53 logger := term.NewLogger(os.Stdout, log.NewJSONLogger, colorFn)
54
55 logger.Log("level", "warn", "msg", "yellow")
56 logger.Log("level", "debug", "msg", "dark gray")
57 }
58
View as plain text