SuperAPI AI 工具集

telemetry

测试与质量

查看项目

更新于 10-16 08:02

技能介绍

用途:给 macOS 应用加入轻量运行时遥测与调试埋点,帮助排查行为,同时避免把代码变成日志垃圾场。偏好使用 Apple 统一日志 API,并在构建/运行后验证事件是否真正发出。

主要能力与准则:优先使用 OSLog 框架的 Logger 记录结构化日志;为每个功能设定清晰的 subsystem/category 组合,方便运行时过滤;记录有意义的用户与应用生命周期事件(窗口打开、侧边栏选择变化、菜单命令、菜单栏额外操作、同步/加载里程碑、意外回退路径);info 日志保持简洁稳定,嘈杂的状态细节用 debug 日志;不记录密钥、认证令牌、个人数据或原始文档内容;仅在测量耗时/性能区间时添加 signposts,默认不要过度埋点。

使用方式:创建一个按功能区域或类型划分的 Logger,例如代码中先用 import OSLog,再用 Logger(subsystem: Bundle.main.bundleIdentifier ?? "SampleApp", category: "Sidebar") 定义。建议使用 Windowing、Commands、MenuBar、Sidebar、Sync、Import 等具体分类。工作流为:先确定需要可观测的行为(窗口开关、选择变化、菜单/键盘命令、菜单栏操作、后台加载/同步/导入、错误与恢复路径);加入最小可用埋点,记录动作边界与关键状态转换,每个用户动作尽量只留一条高信号日志;构建并运行应用,若存在 script/build_and_run.sh,优先 ./script/build_and_run.sh --telemetry 做实时遥测检查,或 ./script/build_and_run.sh --logs 查看更广的进程日志;触发应发出遥测的 UI 或命令路径;读取运行时日志并确认事件已触发,可用 Console.app 按进程/子系统过滤,或在终端用 log stream --style compact --predicate 'process == "AppName"',已知子系统/分类时用 log stream --style compact --predicate 'subsystem == "com.example.app" && category == "Sidebar"';最后收紧或移除埋点。

验证清单:改动后应用能构建;相关动作恰好发出一条清晰日志行或有界的小序列;日志可按进程、子系统或分类过滤;统一日志中无敏感载荷;结束前移除或降级嘈杂的临时调试日志。

限制与护栏:不要把 print 作为 macOS 应用代码的主要遥测手段;不要在每个状态变更处留下密集的永久 debug 日志;在通过 Console、log stream 或捕获的进程输出进行具体验证前,不要声称事件已正确接入;如果调试任务主要是崩溃/回溯分析而非动作遥测,应改用 build-run-debug。其他实现细节与所需脚本暂未提供。