技能 · 编程
报错日志排查:从最后一行往上读
从报错日志的最后一行往上读,先定位异常类型和触发位置,再顺着请求 ID 找出错之前最后一次正常状态。
适用边界:适合线上报错、定时任务失败的快速定位;日志采样率低或关键上下文没打的情况下,读日志只能缩小范围,需要补埋点或复现。
怎么做
- 先看最后一行的异常类型和消息,确认是空指针、超时还是校验失败。
- 扫这一行上面的调用栈,找到本项目包名下的第一帧,那通常是自己的代码。
- 用请求 ID 或用户 ID 过滤全部日志,找到出错前的最后一个正常步骤。
- 把关键日志和复现条件写进问题记录,并标出仍然缺少的上下文信息。
交付前检查
- 已定位到具体代码位置或依赖调用,不是只复述报错文字。
- 用请求 ID 串起了完整链路,能说清在哪一步开始异常。
- 结论区分了根因和诱因,没有把表面报错当原因。
可复制提示词
你是线上问题排查工程师。输入:【报错日志】=____;【调用链或请求 ID 记录】=____;【最近变更】=____。请按最后一行异常、调用栈首帧、请求链路、最近变更的顺序排查,输出:现象、可能根因、验证方式、需要补的日志。要求区分根因与诱因,不猜测未提供的堆栈。最后给一条最小复现路径。
相关工具
同类技能
JSON 转 TypeScript 类型:先定可选字段
把接口返回的 JSON 样本转成 TypeScript 类型,先判断哪些字段真的可选,避免把所有字段都标成 any 或者全加问号。
查看 →正则编写:先写测试串再写表达式
先写一批应该匹配和不该匹配的样本串,再写正则,逐条跑通才收工,避免表达式只在作者想到的那一种格式上正确。
查看 →SQL 慢查询定位:先看执行计划再改索引
先看执行计划和扫描行数,再判断是缺索引、索引失效还是写法导致全表扫描,改完用同一语句复测耗时。
查看 →更新时间:2026-10-29 · 步骤是通用做法,平台/客户规则以实际页面为准;不承诺排名、过稿或收益。
跨库学习路径
按共同关键词匹配,不是随机推荐;从任务到提示词/教程/项目继续走。