鸿蒙综合讨论/日志规范:让 hilog 可检索

日志规范:让 hilog 可检索

日志是移植工程的黑匣子:排查现场全靠它。但日志写得随意,出问题时翻不出来。这篇讲日志规范:让 hilog 可检索、让文件日志可归档。

▍两级日志体系
原则:文件日志全量(写应用数据目录的文本文件),系统日志只发错误(E 级)。为什么文件不用 log 后缀:设备的安全服务会实时扫描特定后缀的文件,扫描期间写盘挂起,曾造成全局卡顿——日志文件用 txt 后缀是 Air 系列用学费换来的铁律。为什么系统日志只发 E 级:更低级别会被系统的流控机制吞掉(发了等于没发),还会在刷屏时触发限流,把真正重要的错误一起淹了。

▍标签与格式
系统日志的标签(tag)规划好:按模块定标签(渲染、输入、打包、桥接),检索时按标签过滤,一眼定位来源。格式统一:时间、级别、模块、事件、上下文标识。事件用稳定的关键词(不是随意的自然语句)——检索的前提是关键词一致,例如加载失败统一前缀,统计时一个关键词全收。

▍分级与采样
级别语义严格:E 是错误(需要人看)、W 是异常但可自愈、I 是关键节点(生命周期、模式切换)、D 是细节。发布版 D 关闭。高频路径(每帧、每事件)的日志必须采样或计数化:不是每次都写,而是攒计数定期汇总(一分钟内发生了多少次),既保留证据又不刷屏。真实事故:调试期的每帧日志上线没关,日志把存储写满,应用被系统处决——高频日志要有编译期开关或运行时总闸。

▍轮转与归档
文件日志按大小轮转(几个文件循环),关键事件(崩溃前的最后记录)保证不被冲掉:崩溃路径单独文件或轮转保护。诊断包导出功能:一键收集日志、版本、机型、渲染档位——用户报障时请他点一下,比指导他找目录体验好十倍。

▍隐私
日志里不写用户数据内容(文件名可以、文件内容不行)、不写完整路径外的敏感信息(账号、密钥)。日志会被用户主动上传,默认它是要公开的。

▍验收
一次真实故障的复盘演练:只靠日志能否定位到模块级别——能,这套日志就合格。

有疑问欢迎在本板块直接发帖,我们会逐条回复。
楼主 7 天前
想参与讨论?登录 或 30 秒注册。