BMS 日志打印
使用此 skill 处理 BundleManager 的日志新增、调整、审查和排查。
工作流程
-
先判断使用哪套宏:
- 普通模块、kit、测试中已有
app_log_wrapper.h:优先沿用APP_LOG*。 - 需要 BMS 细分 tag,如 installer/query/installd/common/ext/aot:优先使用
LOG_NOFUNC_*。 - 只有需要自动附加文件名、函数名、行号来定位复杂失败点时,才使用
LOG_*。
- 普通模块、kit、测试中已有
-
阅读
references/logging-map.md,确认宏、tag、domain 和 GN 配置。 -
阅读
references/logging-checklist.md,检查日志级别、敏感信息和反模式。 -
使用
references/search-recipes.md查找相邻模块的既有日志风格。
基本规则
- BMS tag 日志默认优先使用
LOG_NOFUNC_*,让日志内容保持简洁一致。 - 复杂失败路径、难以定位的 IPC/RDB/文件操作问题,可以改用带文件名、函数名、行号的
LOG_*。 - 日志格式使用 HiLog 标注,例如
%{public}d、%{private}s,不要使用普通%d、%s。 - 敏感信息倾向
%{private},包括 token、证书、profile、完整路径、用户输入和账号/设备相关信息。 - 错误日志要包含可定位失败点的信息,必要时带错误码。
- 不要在高频循环或热路径中新增大量
INFO/ERROR日志。 - 不要在多层调用中对同一失败重复打印 error,避免日志噪音。
参考资料
references/logging-map.md:日志宏、tag、domain、GN 配置地图。references/logging-checklist.md:日志新增和审查清单。references/search-recipes.md:日志相关搜索命令。