Files
go-omni/logx/logx_test.go

38 lines
1.0 KiB
Go

package logx_test
import (
"bytes"
"context"
"encoding/json"
"testing"
"git.yuntuo.hk/k2safe/go-omni/logx"
)
func TestSetupAddsCorrelationFields(t *testing.T) {
var output bytes.Buffer
_, err := logx.Setup(logx.Config{Level: "info", Format: "json", Writer: &output})
if err != nil {
t.Fatalf("setup logger: %v", err)
}
t.Cleanup(func() { _ = logx.Close() })
ctx := logx.WithRequestID(context.Background(), "request-123")
ctx = logx.WithTraceID(ctx, "trace-456")
logx.InfoContext(ctx, "user.created", "userId", 42)
var record map[string]any
if err := json.Unmarshal(output.Bytes(), &record); err != nil {
t.Fatalf("decode log record: %v; output=%q", err, output.String())
}
if record["msg"] != "user.created" || record["requestId"] != "request-123" || record["traceId"] != "trace-456" {
t.Fatalf("unexpected log record: %#v", record)
}
}
func TestNewRejectsUnknownLevel(t *testing.T) {
if _, err := logx.New(logx.Config{Level: "verbose"}); err == nil {
t.Fatal("expected unsupported level error")
}
}