github.com/status-im/status-go@v1.1.0/logutils/zap_adapter_test.go (about) 1 package logutils 2 3 import ( 4 "bytes" 5 "errors" 6 "testing" 7 8 "github.com/stretchr/testify/require" 9 "go.uber.org/zap" 10 11 "github.com/ethereum/go-ethereum/log" 12 ) 13 14 func TestNewZapAdapter(t *testing.T) { 15 buf := bytes.NewBuffer(nil) 16 logger := log.New() 17 handler := log.StreamHandler(buf, log.LogfmtFormat()) 18 logger.SetHandler(handler) 19 20 cfg := zap.NewDevelopmentConfig() 21 adapter := NewZapAdapter(logger, cfg.Level) 22 23 zapLogger := zap.New(adapter) 24 25 buf.Reset() 26 zapLogger. 27 With(zap.Error(errors.New("some error"))). 28 Error("some message with error level") 29 require.Contains(t, buf.String(), `lvl=eror msg="some message with error level" error="some error`) 30 31 buf.Reset() 32 zapLogger. 33 With(zap.Int("counter", 100)). 34 Info("some message with param", zap.String("another-field", "another-value")) 35 require.Contains(t, buf.String(), `lvl=info msg="some message with param" counter=100 another-field=another-value`) 36 37 buf.Reset() 38 zapLogger. 39 With(zap.Namespace("some-namespace")). 40 With(zap.String("site", "SomeSite")). 41 Info("some message with param") 42 require.Contains(t, buf.String(), `lvl=info msg="some message with param" namespace=some-namespace site=SomeSite`) 43 } 44 45 func TestNewZapLoggerWithAdapter(t *testing.T) { 46 buf := bytes.NewBuffer(nil) 47 logger := log.New() 48 handler := log.StreamHandler(buf, log.LogfmtFormat()) 49 logger.SetHandler(handler) 50 51 zapLogger, err := NewZapLoggerWithAdapter(logger) 52 require.NoError(t, err) 53 54 buf.Reset() 55 zapLogger. 56 With(zap.Error(errors.New("some error"))). 57 Error("some message with error level") 58 require.Contains(t, buf.String(), `lvl=eror msg="some message with error level" error="some error`) 59 } 60 61 func TestZapLoggerTerminalFormat(t *testing.T) { 62 buf := bytes.NewBuffer(nil) 63 logger := log.New() 64 handler := log.StreamHandler(buf, log.TerminalFormat(false)) 65 logger.SetHandler(handler) 66 67 zapLogger, err := NewZapLoggerWithAdapter(logger) 68 require.NoError(t, err) 69 70 zapLogger.Info("some message with error level") 71 require.Contains(t, buf.String(), `logutils/zap_adapter_test.go:70`) 72 }