diff --git a/log/testing_logger.go b/log/testing_logger.go index 31913633..81482bef 100644 --- a/log/testing_logger.go +++ b/log/testing_logger.go @@ -3,6 +3,8 @@ package log import ( "os" "testing" + + "github.com/go-kit/kit/log/term" ) var ( @@ -29,3 +31,19 @@ func TestingLogger() Logger { return _testingLogger } + +// TestingLoggerWithColorFn allow you to provide your own color function. See +// TestingLogger for documentation. +func TestingLoggerWithColorFn(colorFn func(keyvals ...interface{}) term.FgBgColor) Logger { + if _testingLogger != nil { + return _testingLogger + } + + if testing.Verbose() { + _testingLogger = NewTMLoggerWithColorFn(NewSyncWriter(os.Stdout), colorFn) + } else { + _testingLogger = NewNopLogger() + } + + return _testingLogger +} diff --git a/log/tm_logger.go b/log/tm_logger.go index 370aa7c0..ae8f88c6 100644 --- a/log/tm_logger.go +++ b/log/tm_logger.go @@ -43,6 +43,12 @@ func NewTMLogger(w io.Writer) Logger { return &tmLogger{term.NewLogger(w, NewTMFmtLogger, colorFn)} } +// NewTMLoggerWithColorFn allow you to provide your own color function. See +// NewTMLogger for documentation. +func NewTMLoggerWithColorFn(w io.Writer, colorFn func(keyvals ...interface{}) term.FgBgColor) Logger { + return &tmLogger{term.NewLogger(w, NewTMFmtLogger, colorFn)} +} + // Info logs a message at level Info. func (l *tmLogger) Info(msg string, keyvals ...interface{}) error { lWithLevel := kitlevel.Info(l.srcLogger)