58 lines
1.6 KiB
Go
58 lines
1.6 KiB
Go
package logutils
|
|
|
|
import (
|
|
"bytes"
|
|
"errors"
|
|
"github.com/ethereum/go-ethereum/log"
|
|
"github.com/stretchr/testify/require"
|
|
"go.uber.org/zap"
|
|
"testing"
|
|
)
|
|
|
|
func TestNewZapAdapter(t *testing.T) {
|
|
buf := bytes.NewBuffer(nil)
|
|
logger := log.New()
|
|
handler := log.StreamHandler(buf, log.LogfmtFormat())
|
|
logger.SetHandler(handler)
|
|
|
|
cfg := zap.NewDevelopmentConfig()
|
|
adapter := NewZapAdapter(logger, cfg.Level)
|
|
|
|
zapLogger := zap.New(adapter)
|
|
|
|
buf.Reset()
|
|
zapLogger.
|
|
With(zap.Error(errors.New("some error"))).
|
|
Error("some message with error level")
|
|
require.Contains(t, buf.String(), `lvl=eror msg="some message with error level" error="some error`)
|
|
|
|
buf.Reset()
|
|
zapLogger.
|
|
With(zap.Int("counter", 100)).
|
|
Info("some message with param", zap.String("another-field", "another-value"))
|
|
require.Contains(t, buf.String(), `lvl=info msg="some message with param" counter=100 another-field=another-value`)
|
|
|
|
buf.Reset()
|
|
zapLogger.
|
|
With(zap.Namespace("some-namespace")).
|
|
With(zap.String("site", "SomeSite")).
|
|
Info("some message with param")
|
|
require.Contains(t, buf.String(), `lvl=info msg="some message with param" namespace=some-namespace site=SomeSite`)
|
|
}
|
|
|
|
func TestNewZapLoggerWithAdapter(t *testing.T) {
|
|
buf := bytes.NewBuffer(nil)
|
|
logger := log.New()
|
|
handler := log.StreamHandler(buf, log.LogfmtFormat())
|
|
logger.SetHandler(handler)
|
|
|
|
zapLogger, err := NewZapLoggerWithAdapter(logger)
|
|
require.NoError(t, err)
|
|
|
|
buf.Reset()
|
|
zapLogger.
|
|
With(zap.Error(errors.New("some error"))).
|
|
Error("some message with error level")
|
|
require.Contains(t, buf.String(), `lvl=eror msg="some message with error level" error="some error`)
|
|
}
|