github.com/go-kit/log@v0.2.1/term/example_test.go (about) 1 package term_test 2 3 import ( 4 "errors" 5 "os" 6 7 "github.com/go-kit/log" 8 "github.com/go-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 }