grep -c 'DEGRADE' /var/log/app/app.log grep 'DEGRADE' /var/log/app/app.log | tail -5 curl -s localhost:8081/actuator/loggers/com.example | jq '.effectiveLevel'
故障复盘时要统计降级影响面,翻遍日志只有 3 条降级记录,监控显示兜底接口被调用了 2.7 万次。日志配置里 root 级别是 info,降级那行写的是 debug。这类现象通常不是突然出现的,往前翻半天日志能看到苗头。
追下去是这么回事:降级属于异常分支,开发时习惯用 debug 避免刷屏,上线没改级别。采集侧也没按关键字单独保留,即使打了也容易被采样丢掉。
「降级日志缺失」确认了原因之后,改动尽量只碰那一处,顺手改的东西后面最容易出问题。监控和日志的时间要对上,时区不一致会多绕很大一圈。
临时改动用注释写上日期和原因,过两周自己都记不清为什么这么写。
处理上按这个顺序:降级日志统一用 warn 并带上接口名和失败原因;日志里加降级标记字段 方便 grep 和统计;采集侧对这类日志不采样 单独留一条 pipeline;复盘时用标记字段统计影响用户数。
确认没问题再收工,人为触发降级后日志里能按 DEGRADE 关键字检索到完整记录,条数和监控计数一致。
