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  }