feat: bootstrap reusable GoOmni framework

This commit is contained in:
2026-09-20 22:06:24 +08:00
commit 8b19aa79ee
60 changed files with 4923 additions and 0 deletions

37
logx/logx_test.go Normal file
View File

@@ -0,0 +1,37 @@
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")
}
}