github.com/tendermint/tmlibs@v0.9.0/log/tracing_logger_test.go (about)

     1  package log_test
     2  
     3  import (
     4  	"bytes"
     5  	stderr "errors"
     6  	"fmt"
     7  	"strings"
     8  	"testing"
     9  
    10  	"github.com/pkg/errors"
    11  	"github.com/tendermint/tmlibs/log"
    12  )
    13  
    14  func TestTracingLogger(t *testing.T) {
    15  	var buf bytes.Buffer
    16  
    17  	logger := log.NewTMJSONLogger(&buf)
    18  
    19  	logger1 := log.NewTracingLogger(logger)
    20  	err1 := errors.New("Courage is grace under pressure.")
    21  	err2 := errors.New("It does not matter how slowly you go, so long as you do not stop.")
    22  	logger1.With("err1", err1).Info("foo", "err2", err2)
    23  	have := strings.Replace(strings.Replace(strings.TrimSpace(buf.String()), "\\n", "", -1), "\\t", "", -1)
    24  	if want := strings.Replace(strings.Replace(`{"_msg":"foo","err1":"`+fmt.Sprintf("%+v", err1)+`","err2":"`+fmt.Sprintf("%+v", err2)+`","level":"info"}`, "\t", "", -1), "\n", "", -1); want != have {
    25  		t.Errorf("\nwant '%s'\nhave '%s'", want, have)
    26  	}
    27  
    28  	buf.Reset()
    29  
    30  	logger.With("err1", stderr.New("Opportunities don't happen. You create them.")).Info("foo", "err2", stderr.New("Once you choose hope, anything's possible."))
    31  	if want, have := `{"_msg":"foo","err1":"Opportunities don't happen. You create them.","err2":"Once you choose hope, anything's possible.","level":"info"}`, strings.TrimSpace(buf.String()); want != have {
    32  		t.Errorf("\nwant '%s'\nhave '%s'", want, have)
    33  	}
    34  
    35  	buf.Reset()
    36  
    37  	logger.With("user", "Sam").With("context", "value").Info("foo", "bar", "baz")
    38  	if want, have := `{"_msg":"foo","bar":"baz","context":"value","level":"info","user":"Sam"}`, strings.TrimSpace(buf.String()); want != have {
    39  		t.Errorf("\nwant '%s'\nhave '%s'", want, have)
    40  	}
    41  }