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 }