OSDN Git Service

new repo
[bytom/vapor.git] / vendor / github.com / go-kit / kit / log / term / example_test.go
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         // Color errors red
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         // Color by level value
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 }