38 lines
1.0 KiB
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")
|
|
}
|
|
}
|