93 lines
2.0 KiB
Go
93 lines
2.0 KiB
Go
package slog_test
|
|
|
|
import (
|
|
"bytes"
|
|
"encoding/json"
|
|
stdslog "log/slog"
|
|
"testing"
|
|
|
|
"cosmossdk.io/log/slog"
|
|
)
|
|
|
|
func TestSlog(t *testing.T) {
|
|
var buf bytes.Buffer
|
|
h := stdslog.NewJSONHandler(&buf, &stdslog.HandlerOptions{
|
|
Level: stdslog.LevelDebug,
|
|
})
|
|
logger := slog.NewCustomLogger(stdslog.New(h))
|
|
|
|
type logLine struct {
|
|
Level string `json:"level"`
|
|
Msg string `json:"msg"`
|
|
Num int `json:"num"`
|
|
}
|
|
|
|
var line logLine
|
|
|
|
logger.Debug("Message one", "num", 1)
|
|
if err := json.Unmarshal(buf.Bytes(), &line); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if want := (logLine{
|
|
Level: stdslog.LevelDebug.String(),
|
|
Msg: "Message one",
|
|
Num: 1,
|
|
}); want != line {
|
|
t.Fatalf("unexpected log record: want %v, got %v", want, line)
|
|
}
|
|
|
|
buf.Reset()
|
|
logger.Info("Message two", "num", 2)
|
|
if err := json.Unmarshal(buf.Bytes(), &line); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if want := (logLine{
|
|
Level: stdslog.LevelInfo.String(),
|
|
Msg: "Message two",
|
|
Num: 2,
|
|
}); want != line {
|
|
t.Fatalf("unexpected log record: want %v, got %v", want, line)
|
|
}
|
|
|
|
buf.Reset()
|
|
logger.Warn("Message three", "num", 3)
|
|
if err := json.Unmarshal(buf.Bytes(), &line); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if want := (logLine{
|
|
Level: stdslog.LevelWarn.String(),
|
|
Msg: "Message three",
|
|
Num: 3,
|
|
}); want != line {
|
|
t.Fatalf("unexpected log record: want %v, got %v", want, line)
|
|
}
|
|
|
|
buf.Reset()
|
|
logger.Error("Message four", "num", 4)
|
|
if err := json.Unmarshal(buf.Bytes(), &line); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if want := (logLine{
|
|
Level: stdslog.LevelError.String(),
|
|
Msg: "Message four",
|
|
Num: 4,
|
|
}); want != line {
|
|
t.Fatalf("unexpected log record: want %v, got %v", want, line)
|
|
}
|
|
|
|
wLogger := logger.With("num", 5)
|
|
buf.Reset()
|
|
wLogger.Info("Using .With")
|
|
|
|
if err := json.Unmarshal(buf.Bytes(), &line); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if want := (logLine{
|
|
Level: stdslog.LevelInfo.String(),
|
|
Msg: "Using .With",
|
|
Num: 5,
|
|
}); want != line {
|
|
t.Fatalf("unexpected log record: want %v, got %v", want, line)
|
|
}
|
|
}
|