github.com/lazyledger/lazyledger-core@v0.35.0-dev.0.20210613111200-4c651f053571/libs/log/tm_logger_test.go (about) 1 package log_test 2 3 import ( 4 "bytes" 5 "io/ioutil" 6 "strings" 7 "testing" 8 9 "github.com/lazyledger/lazyledger-core/libs/log" 10 ) 11 12 func TestLoggerLogsItsErrors(t *testing.T) { 13 var buf bytes.Buffer 14 15 logger := log.NewTMLogger(&buf) 16 logger.Info("foo", "baz baz", "bar") 17 msg := strings.TrimSpace(buf.String()) 18 if !strings.Contains(msg, "foo") { 19 t.Errorf("expected logger msg to contain ErrInvalidKey, got %s", msg) 20 } 21 } 22 23 func BenchmarkTMLoggerSimple(b *testing.B) { 24 benchmarkRunner(b, log.NewTMLogger(ioutil.Discard), baseInfoMessage) 25 } 26 27 func BenchmarkTMLoggerContextual(b *testing.B) { 28 benchmarkRunner(b, log.NewTMLogger(ioutil.Discard), withInfoMessage) 29 } 30 31 func benchmarkRunner(b *testing.B, logger log.Logger, f func(log.Logger)) { 32 lc := logger.With("common_key", "common_value") 33 b.ReportAllocs() 34 b.ResetTimer() 35 for i := 0; i < b.N; i++ { 36 f(lc) 37 } 38 } 39 40 var ( 41 baseInfoMessage = func(logger log.Logger) { logger.Info("foo_message", "foo_key", "foo_value") } 42 withInfoMessage = func(logger log.Logger) { logger.With("a", "b").Info("c", "d", "f") } 43 )