1
0
mirror of https://github.com/go-kratos/kratos.git synced 2025-01-30 04:31:03 +02:00
kratos/log/helper_writer_test.go
Elric Li eb2dcae83d
feat(log): Helper implemented io.Writer (#1927)
* feat(log): Add writerWrapper implementing io.Writer

* fix(kratos): fix format has wrong type

* fix(log): rename writerOption to WriterOptionFn.
2022-05-06 15:59:50 +08:00

53 lines
1.3 KiB
Go

package log
import (
"bytes"
"io"
"strings"
"testing"
)
func TestWriterWrapper(t *testing.T) {
var buf bytes.Buffer
logger := NewStdLogger(&buf)
content := "ThisIsSomeTestLogMessage"
testCases := []struct {
w io.Writer
acceptLevel Level
acceptMessageKey string
}{
{
w: NewWriter(logger),
acceptLevel: LevelInfo, // default level
acceptMessageKey: DefaultMessageKey,
},
{
w: NewWriter(logger, WithWriterLevel(LevelDebug)),
acceptLevel: LevelDebug,
acceptMessageKey: DefaultMessageKey,
},
{
w: NewWriter(logger, WithWriteMessageKey("XxXxX")),
acceptLevel: LevelInfo, // default level
acceptMessageKey: "XxXxX",
},
{
w: NewWriter(logger, WithWriterLevel(LevelError), WithWriteMessageKey("XxXxX")),
acceptLevel: LevelError,
acceptMessageKey: "XxXxX",
},
}
for _, tc := range testCases {
_, err := tc.w.Write([]byte(content))
if err != nil {
t.Fatalf("unexpected error: %v", err)
}
if !strings.Contains(buf.String(), tc.acceptLevel.String()) {
t.Errorf("expected level: %s, got: %s", tc.acceptLevel, buf.String())
}
if !strings.Contains(buf.String(), tc.acceptMessageKey) {
t.Errorf("expected message key: %s, got: %s", tc.acceptMessageKey, buf.String())
}
}
}