176、logging 的调试实战:结构化日志、traceId 注入、ELK 集成与采样策略

176、logging 的调试实战:结构化日志、traceId 注入、ELK 集成与采样策略
176、logging 的调试实战:结构化日志、traceId 注入、ELK 集成与采样策略上周五凌晨两点,我被报警电话叫醒——线上服务突然大面积超时。登录服务器一看,日志文件里全是这种玩意儿:2024-03-15 01:23:45,678 - ERROR - 订单处理失败 2024-03-15 01:23:45,679 - ERROR - 订单处理失败 2024-03-15 01:23:45,680 - ERROR - 订单处理失败三行日志,三个不同的订单,三个不同的错误原因,但日志里一个字都没说清楚。这就是典型的“日志写了等于没写”的惨案。今天这篇笔记,就是那次事故后我重构日志系统的全部心得。结构化日志:别再写给人看的字符串了传统日志最大的问题在于:它是给人读的,不是给机器读的。当你需要从十万行日志里 grep 某个订单号时,你会发现正则表达式写得比业务代码还复杂。我现在的做法是:所有日志必须输出 JSON 格式。别觉得麻烦,这玩意儿救过我的命。importjsonimportloggingfromdatetimeimportd

最新新闻

日新闻

周新闻

月新闻