...

Source file src/github.com/go-kit/log/term/example_test.go

Documentation: github.com/go-kit/log/term

     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  }
    58  

View as plain text