diff --git a/backend/internal/trace/logger.go b/backend/internal/trace/logger.go new file mode 100644 index 0000000..b1fc921 --- /dev/null +++ b/backend/internal/trace/logger.go @@ -0,0 +1,25 @@ +package trace + +import ( + "context" + + "github.com/hhs/camtalk/internal/logger" + "go.uber.org/zap" +) + +// FromContext 返回自动附加 trace_id/request_id/session_id 的 logger +func FromContext(ctx context.Context) *zap.SugaredLogger { + log := logger.Log + + if traceID := GetTraceID(ctx); traceID != "" { + log = log.With("trace_id", traceID) + } + if requestID := GetRequestID(ctx); requestID != "" { + log = log.With("request_id", requestID) + } + if sessionID := GetSessionID(ctx); sessionID != "" { + log = log.With("session_id", sessionID) + } + + return log +}