HIXL日志与文档规范

适用场景:本规范适用于HIXL仓所有代码中的日志打印,以及仓库内全部Markdown文档的检视。当PR修改涉及.md文件或日志输出时,必须执行本规范。

规范列表

规范编号 规范名称 类别 严重级别
1.1 失败必须打印错误描述与关键信息 日志
1.2 调用外部组件失败须打印api名/错误码/参数 日志
1.3 日志内容全部使用英文 日志
1.4 内容无语法拼写错误、完整准确、避免自创缩写 日志
1.5 度量信息须添加度量单位 日志
1.6 不得以明文记录敏感信息 日志
1.7 日志不得携带个人信息 日志
1.8 性能敏感流程不得记录run日志、生产环境不持续输出DEBUG 日志
1.9 避免高频循环体内打印重复错误日志 日志
1.10 单行日志长度不超过1024字符 日志
2.1 文档表格与列表项须逐项完整 文档写作

说明

本规范日志部分(第1章)依据GitCode HIXL仓库Wiki「日志内容打印规范」,并结合HIXL PR检视流程中既有的日志检查项整理。文档写作规范(第2章)直接遵循GitCode CANN社区《文档写作规范》,不在本文件重复。

参与HIXL开发的开发者提交日志或文档相关变更时,首先需要遵循本规范内容,其余遵循CANN通用编码规范。如果对规则有异议,建议提交issue并说明理由,经CANN运营团队评审后可接纳并修改生效。

适用范围

HIXL相关开源仓的日志打印、Markdown文档、README、示例与脚本说明的检视。


1. 日志规范

规则 1.1 失败必须打印错误描述与关键信息

执行出错或失败时,日志必须进行错误描述,并打印出可能造成该失败的关键信息,不得静默返回失败。

[反例]:未打印日志及关键信息

auto ret = IpToInt(ip_info.ip.GetString(), llm_ip_info.ip);
if (ret != SUCCESS) {
  return FAILED;
}

[正例]:

auto ret = IpToInt(ip_info.ip.GetString(), llm_ip_info.ip);
if (ret != SUCCESS) {
  LOGE(FAILED, "Failed to transfer ip to int, please check ip:%s is valid.", ip_info.ip.GetString());
  return FAILED;
}

规则 1.2 调用外部组件失败须打印api名/错误码/参数

调用外部组件接口失败时,需要将调用的api名字、失败错误码以及参数打印出来,以便问题定位,参考格式Call api:xxx failed, ret:xxx, param:xxx.

[反例]:未打印函数名及入参

auto ret = aclrtSetDevice(device_id);
if (ret != ACL_ERROR_NONE) {
  LOGE(FAILED, "Failed to set device.");
  return FAILED;
}

[正例]:

auto ret = aclrtSetDevice(device_id);
if (ret != ACL_ERROR_NONE) {
  LOGE(FAILED, "Call api:aclrtSetDevice failed, ret:%u, device_id:xxx.");
  return FAILED;
}

规则 1.3 日志内容全部使用英文

日志内容全部使用英文描述,不得使用拼音、中文和中文符号。

规则 1.4 内容无语法拼写错误、完整准确、避免自创缩写

日志内容不能存在语法、拼写错误,表达应完整准确、言简意赅,避免自创缩写。

规则 1.5 度量信息须添加度量单位

日志中涉及度量信息(如耗时、数据量、带宽)需要添加度量单位。

规则 1.6 不得以明文记录敏感信息

不能以明文的形式记录敏感信息,比如密码、秘钥、token等。

规则 1.7 日志不得携带个人信息

日志内容中不得携带个人信息。

规则 1.8 性能敏感流程不得记录run日志、生产环境不持续输出DEBUG

性能敏感流程中不能记录run日志(INFO级),例如KV传输流程中HIXL的数据面接口;生产环境不应出现DEBUG级别的持续输出。

规则 1.9 避免高频循环体内打印重复错误日志

避免高频循环体内打印重复错误日志,否则将导致有用的错误信息被掩盖。

规则 1.10 单行日志长度不超过1024字符

单行日志输出长度不得超过1024个字符。


2. 文档写作规范

文档(.md)写作规范直接遵循GitCode CANN社区《文档写作规范》。该规范涵盖文件命名、标题、字体样式、图片、代码块、列表、链接、锚点、表格、标点符号等全部文档写作要求(含“数字/单位/中英文之间不加空格、产品名称例外”“中文文档使用全角标点、数字半角”等规则)。检视文档变更时先以此为准(community规范不在此重复)。HIXL补充以下检查项:

规则 2.1 文档表格与列表项须逐项完整

文档中的表格、列表,每一项必须有对应的说明内容,不得出现空单元格或缺失项。