micro-logger-zap/zap_test.go
Vasiliy Tolstov fd7576dced move to micro v4
Signed-off-by: Vasiliy Tolstov <v.tolstov@unistack.org>
2023-05-07 19:09:08 +03:00

93 lines
1.9 KiB
Go

package zap
import (
"bytes"
"context"
"testing"
"go.uber.org/zap"
"go.unistack.org/micro/v4/logger"
)
func TestFields(t *testing.T) {
ctx := context.TODO()
buf := bytes.NewBuffer(nil)
l := NewLogger(logger.WithLevel(logger.TraceLevel), logger.WithOutput(buf))
if err := l.Init(); err != nil {
t.Fatal(err)
}
l.Fields("key", "val").Info(ctx, "message")
if !bytes.Contains(buf.Bytes(), []byte(`"key":"val"`)) {
t.Fatalf("logger fields not works, buf contains: %s", buf.Bytes())
}
}
func TestOutput(t *testing.T) {
buf := bytes.NewBuffer(nil)
l := NewLogger(logger.WithOutput(buf))
if err := l.Init(); err != nil {
t.Fatal(err)
}
l.Infof(context.TODO(), "test logger name: %s", "name")
if !bytes.Contains(buf.Bytes(), []byte(`test logger name`)) {
t.Fatalf("log not redirected: %s", buf.Bytes())
}
}
func TestName(t *testing.T) {
l := NewLogger()
if err := l.Init(); err != nil {
t.Fatal(err)
}
if l.String() != "zap" {
t.Errorf("name is error %s", l.String())
}
t.Logf("test logger name: %s", l.String())
}
func TestLogf(t *testing.T) {
l := NewLogger()
if err := l.Init(); err != nil {
t.Fatal(err)
}
logger.DefaultLogger = l
logger.Infof(context.TODO(), "test logf: %s", "name")
}
func TestSetLevel(t *testing.T) {
l := NewLogger()
if err := l.Init(); err != nil {
t.Fatal(err)
}
logger.DefaultLogger = l
if err := logger.Init(logger.WithLevel(logger.DebugLevel)); err != nil {
t.Fatal(err)
}
l.Debugf(context.TODO(), "test show debug: %s", "debug msg")
if err := logger.Init(logger.WithLevel(logger.InfoLevel)); err != nil {
t.Fatal(err)
}
l.Debugf(context.TODO(), "test non-show debug: %s", "debug msg")
}
func TestWrapper(t *testing.T) {
z, err := zap.NewDevelopment()
if err != nil {
t.Fatal(err)
}
zl := NewLogger(WithLogger(z))
if err := zl.Init(); err != nil {
t.Fatal(err)
}
logger.DefaultLogger = zl
logger.Infof(context.TODO(), "test logf: %s", "name")
}