跳转至

std.log

tier: core

结构化 kv 日志(P7-A;T1 档:零 use 纯函数,无 extern 无时钟)

形态纪律(router/enc 同款零 use 纯模块):本模块不取时钟、不落 IO —— ts 由消费方传(now_iso_utc()),写出由消费方 println;本模块只做 「级别解析/门控/行构造」三件纯面,双臂(解释/发射)天然可对拍。

行格式(v1): \n ts = ISO8601 UTC(消费方经 std/time) kv = (" k=v")* lg_kv 逐个拼接;v1 单行约定 级别:debug=0 < info=1 < warn=2 < error=3;阈值门 = level >= thresh 阈值解析 lg_level_parse(env CTRON_LOG 值):debug/info/warn/error 精确 小写匹配,空/未知 → info(1)——诚实缺省,静默降档即丢日志,从严。 值转义 lg_esc_val:值含 空格/引号/等号/反斜杠/控制字符 或为空 → 引裹, 裹内 " → \" 、\ → \ 、\n → \n(两字符)、\r、\t 同形;其余控制字节(<32) 丢弃;≥128 字节透传(UTF-8 中文不破坏——丢弃即毁消息,透传是唯一诚实形)。 键不做转义(v1:键 = 代码常量;动态键列志向)。 分层准入(宪章 v2 四问):零依赖/纯函数/无平台面/与 json·enc 同类 —— T1。

pub fn

Signature Returns Description
lg_debug() I64 级别码 0
lg_info() I64 级别码 1
lg_warn() I64 级别码 2
lg_error() I64 级别码 3
lg_level_parse(v: Str) I64 阈值解析:CTRON_LOG 值 → 级别码;空/未知 → info(1)
lg_enabled(thresh: I64, level: I64) Bool 门控:level 达阈值才出
lg_level_name(level: I64) Str 级别名(4/5 字母大写;越界码 → INFO 诚实降档,不 panic)
lg_esc_val(v: Str) Str 值转义(见头注;返回原串或引裹转义形)
lg_kv(k: Str, v: Str) Str kv 片:前导空格 + k=v(值经转义)
lg_line(ts: Str, level: I64, msg: Str, kv: Str) Str 整行构造(纯;尾含 \n)