知识卡片

日志级别机制的悖论

专业/工作 · 1218.h

内容

DEBUG、INFO、ERROR 这类日志严重级别源自可追溯到1980年代的 syslog 协议(后经 RFC 3164、RFC 5424 规范化),本意是让人按需过滤日志输出的详略程度。但这套机制隐含一个悖论:级别设置的前提假设是”一切运行良好”,生产环境通常默认只开 INFO 或 ERROR 级别以控制日志量,可一旦真的遇到棘手问题、迫切需要 DEBUG 级别的细节时,日志里恰恰没有这些数据——因为平时压根没在采集。另一层困难在于个别日志条目该标什么级别本身就很主观:一次外部 API 连接失败,如果本来就配了健壮的限流重试机制作为兜底,这算 ERROR 还是 INFO?与其在每处调用点都纠结级别怎么设,更根本的做法是先想清楚应用的行为模式、出问题时通常会先问哪些问题,需要记录什么日志自然就清晰了。

参考来源

《监控运维实践 原则与策略-2021》第7章《应用程序监控》