按错误、警告、信息三级向平台日志写入单条文字,超长则截断。
源码浏览已生成;不能解析的文件以纯文本展示,不表示通过类型检查。
# 日志接口规范 0.1.0 本包让应用向平台日志按三个级别各写一条文字:`记录错误日志` 对应 `console.error`,`记录警告日志` 对应 `console.warn`,`记录信息日志` 对应 `console.info`。每次调用写出一条日志,文字原样交给平台,换行、引号、控制字符都不改写,也不添加时间、级别或请求标识(这些由平台附加)。**单条日志不超过 8 KiB,即 8192 个 UTF-8 字节**:更长的文字在字符边界截断,末尾附省略标记 `…(已截断)`,截断后的总长(含标记)不超过 8192 字节,不会把一个字符切成两半;不超过上限的文字逐字节原样写出。空字符串是合法的日志文字。三个函数没有返回值,也不因文字内容失败;平台可以采样、限流或丢弃日志,应用不得依据日志是否出现来改变业务行为。 **不得把令牌、口令、密钥、邮箱地址等敏感信息写进日志,这是应用的责任。** 本包不检测也不脱敏:日志一旦写出便脱离应用控制,平台和运维人员都可能读到。写日志前应自行省略这些字段,或改写成不可还原的摘要。 ## 一致性样例 | 输入 | 必须观察到 | | --- | --- | | 三个函数各写一条 `你好` | 平台分别收到一条 error、warn、info 日志,内容都是 `你好`,没有其他级别的日志 | | 恰好 8192 字节的 ASCII 文字 | 原样写出,一次调用恰好一条 | | 8193 字节的 ASCII 文字 | 写出的文字不超过 8192 字节,以 `…(已截断)` 结尾,其前部是原文的前缀 | | 9000 字节的三字节汉字 | 只保留整字,写出的文字是有效 UTF-8,不超过 8192 字节 | | 含换行、制表、双引号、反斜线的文字 | 原样写出 | | 空字符串 | 写出一条空日志 | ## 边界 本包不提供 debug、log 级别,不提供结构化字段、采样、检索或脱敏,也不承诺日志一定被保存。截断标记固定为 `…(已截断)`;这里的“字符”指一个 Unicode 码点(运行时的通字符):截断只发生在码点之间,绝不产生非法 UTF-8,但可能把由多个码点组成的可见字符(带组合记号的字母、emoji 序列等)拆开。云工适配把三个函数映射到 Worker 的 `console.error`、`console.warn`、`console.info`;其他宿主可以写入等价的分级日志,只要级别、单条上限和截断规则一致。
# 日志公约 0.1.0 此包使客向平台之日志,按三级各书一条:`记录错误日志` 当 `console.error`,`记录警告日志` 当 `console.warn`,`记录信息日志` 当 `console.info`。每呼一次,书一条,文原样授平台,换行、引号、控制之字皆不改,亦不增时、级或请求之识(此平台所附)。**单条不逾八 KiB,即八千一百九十二 UTF-8 字节**:文长逾此,则于字界截之,末附省略之标 `…(已截断)`,截后总长(并标计之)不逾八千一百九十二字节,且不裂一字为二;未逾限者,逐字节原样而书。空文亦为合法之记。三术无返值,亦不因文之内容而败;平台得抽样、限流或弃其记,客不得因记之见否而易其业。 **令牌、口令、密钥、邮箱之地址等敏感之讯,不得书入日志,此客之责也。** 此包不察不脱:记一经书,即脱客之控,平台与运维之人皆得见之。书记之前,当自去此类之项,或易为不可还原之摘要。 ## 一致之例 | 输入 | 必见 | | --- | --- | | 三术各书一条 `你好` | 平台分得 error、warn、info 各一条,文皆 `你好`,无他级之记 | | 恰八千一百九十二字节之 ASCII 文 | 原样而书,一呼恰一条 | | 八千一百九十三字节之 ASCII 文 | 所书之文不逾八千一百九十二字节,以 `…(已截断)` 终,其前乃原文之首段 | | 九千字节之三字节汉字 | 唯留整字,所书为有效 UTF-8,不逾八千一百九十二字节 | | 含换行、制表、双引号、反斜线之文 | 原样而书 | | 空文 | 书一空记 | ## 界 此包不设 debug、log 之级,不设结构化之字段、抽样、检索与脱敏,亦不保记之必存。截断之标定为 `…(已截断)`;所谓一字,谓一 Unicode 码点(运行时之通字符):截惟在码点之间,绝不生非法之 UTF-8,然或裂多码点所成之可见之字(如带组合记号之字母、emoji 之序)。云工适配以三术映 Worker 之 `console.error`、`console.warn`、`console.info`;他宿主可书等价之分级日志,惟级别、单条之限与截断之法须同。