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  )