github.com/tendermint/tmlibs@v0.9.0/log/testing_logger.go (about) 1 package log 2 3 import ( 4 "os" 5 "testing" 6 7 "github.com/go-kit/kit/log/term" 8 ) 9 10 var ( 11 // reuse the same logger across all tests 12 _testingLogger Logger 13 ) 14 15 // TestingLogger returns a TMLogger which writes to STDOUT if testing being run 16 // with the verbose (-v) flag, NopLogger otherwise. 17 // 18 // Note that the call to TestingLogger() must be made 19 // inside a test (not in the init func) because 20 // verbose flag only set at the time of testing. 21 func TestingLogger() Logger { 22 if _testingLogger != nil { 23 return _testingLogger 24 } 25 26 if testing.Verbose() { 27 _testingLogger = NewTMLogger(NewSyncWriter(os.Stdout)) 28 } else { 29 _testingLogger = NewNopLogger() 30 } 31 32 return _testingLogger 33 } 34 35 // TestingLoggerWithColorFn allow you to provide your own color function. See 36 // TestingLogger for documentation. 37 func TestingLoggerWithColorFn(colorFn func(keyvals ...interface{}) term.FgBgColor) Logger { 38 if _testingLogger != nil { 39 return _testingLogger 40 } 41 42 if testing.Verbose() { 43 _testingLogger = NewTMLoggerWithColorFn(NewSyncWriter(os.Stdout), colorFn) 44 } else { 45 _testingLogger = NewNopLogger() 46 } 47 48 return _testingLogger 49 }