日志

面向长期演进的软件系统,将日志从"调试手段"升级为"系统认知与组织治理工具"。


一、原理层(First Principles)

1. 日志的本质

日志不是文本,而是事件(Event)的时间化持久表达。

日志 = 系统在时间维度上,对状态变化、决策行为与异常事实的不可变记录。

其核心价值不在于“打印了什么字符串”,而在于:

2. 日志在可观测性中的位置

可观测性的三大支柱:

日志解决的是“发生了什么”,而不是“发生得多快”。

3. 稳定认知


二、架构层(Architecture Model)

1. 日志系统的参考抽象模型

事件源(应用)   ↓事件记录(Logger)   ↓采集与缓冲(Agent / MQ)   ↓加工与结构化(Processor)   ↓存储(冷热分层)   ↓查询与分析(Search / Analytics)

该模型在单体与分布式系统中保持稳定,仅实现方式不同。

2. 单体日志架构

特征:

适用阶段:

3. 分布式日志架构

核心思想:日志写入与业务执行解耦

关键能力:


三、设计层(Design Philosophy)

1. 日志级别的治理语义(而非技术语义)

级别本质含义组织责任
ERROR系统或业务进入不可接受状态必须人工介入
WARN偏离设计预期但可继续运行需要评估
INFO关键状态或行为记录用于审计与回溯
DEBUG诊断辅助信息临时存在
TRACE细粒度运行细节高成本、短期

日志级别 = 组织对事件严重性的态度声明。

2. 系统日志 vs 操作日志(责任边界)

类型本质受众
系统日志系统行为与异常开发 / 运维
操作日志用户或业务行为产品 / 审计 / 风控

操作日志必须满足:

3. 日志上下文设计

稳定上下文字段:

没有上下文的日志,几乎不可用。


四、工程方法层(Engineering Practices)

1. 日志与业务解耦

目标:

日志是对业务事实的“旁观式记录”,而非业务流程的一部分。

2. 性能与成本意识

核心原则:

工程策略:

3. 错误日志的严格使用

ERROR 日志必须满足:

否则应使用 WARN 或 INFO。


五、选型原则层(Technology-Neutral)

1. 日志系统选型维度

维度关注点
写入模型吞吐 / 顺序写
查询模型实时 / 离线
生命周期冷热分层 / 保留策略
成本存储 / 计算
治理能力权限 / 审计 / 合规

技术会变化,选型原则应长期稳定。


六、组织与文化层(Organizational Impact)

1. 日志的三类受众

2. 日志即制度

一个成熟团队,其日志风格往往高度一致。

关联内容(自动生成)