From 91fc53b20ca23fd651390ea24f5066ddfd747c35 Mon Sep 17 00:00:00 2001 From: Your Name Date: Mon, 19 Oct 2026 00:17:48 +0800 Subject: [PATCH] fix: persist logs without caller path --- server/internal/global/init.go | 10 +++++++++- server/internal/global/init_test.go | 23 +++++++++++++++++++++++ 2 files changed, 32 insertions(+), 1 deletion(-) create mode 100644 server/internal/global/init_test.go diff --git a/server/internal/global/init.go b/server/internal/global/init.go index 3666117..e843f09 100644 --- a/server/internal/global/init.go +++ b/server/internal/global/init.go @@ -111,7 +111,7 @@ func LoggingServeLogHandler(ctx context.Context, in *glog.HandlerInput) { data.LevelFormat = in.LevelFormat data.Content = in.Content data.Stack = gjson.New(charset.ParseStack(in.Stack)) - data.Line = strings.TrimRight(in.CallerPath, ":") + data.Line = normalizeServeLogLine(in.CallerPath) data.TriggerNs = in.Time.UnixNano() data.Status = consts.StatusEnabled @@ -135,6 +135,14 @@ func LoggingServeLogHandler(ctx context.Context, in *glog.HandlerInput) { } } +func normalizeServeLogLine(callerPath string) string { + line := strings.TrimRight(callerPath, ":") + if line == "" { + return "unknown" + } + return line +} + // InitTrace 初始化链路追踪 func InitTrace(ctx context.Context) { if !g.Cfg().MustGet(ctx, "jaeger.switch").Bool() { diff --git a/server/internal/global/init_test.go b/server/internal/global/init_test.go new file mode 100644 index 0000000..9edbf65 --- /dev/null +++ b/server/internal/global/init_test.go @@ -0,0 +1,23 @@ +package global + +import "testing" + +func TestNormalizeServeLogLine(t *testing.T) { + tests := []struct { + name string + in string + want string + }{ + {name: "preserves caller", in: "internal/cmd/cron.go:30:", want: "internal/cmd/cron.go:30"}, + {name: "defaults empty caller", in: "", want: "unknown"}, + {name: "defaults delimiter only caller", in: ":", want: "unknown"}, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + if got := normalizeServeLogLine(tt.in); got != tt.want { + t.Fatalf("normalizeServeLogLine(%q) = %q, want %q", tt.in, got, tt.want) + } + }) + } +}