凌晨两点还在 grep 日志?先别急着让AI「看看这个报错」
线上服务报错,是每个独立开发者和小团队的噩梦。服务一挂,群里炸锅,你盯着满屏滚动的日志,grep 换了一轮又一轮,眉头越皱越紧。这时候你想起 AI——让它帮忙看日志,听起来很美好,对吧?
但我想先泼一盆冷水:大多数人第一次用 AI 排查日志的方式,是错的。 我自己就翻过车。这篇文章先讲翻车现场,再讲怎么走对路。
一、三个典型的失败做法
失败做法一:整段日志无脑粘贴
最常见的一幕:把几千行日志一股脑粘进对话框,附一句「帮我看看哪里出错了」。结果往往是:
- AI 被海量 INFO 日志淹没,抓不住重点;
- 超出上下文长度,日志被截断,恰恰关键报错在尾部;
- AI 给出一段「正确的废话」:可能是网络问题、可能是配置问题、建议检查日志——等于什么都没说。
根本原因:你没有做任何预处理,把本该你做的筛选工作甩给了 AI。AI 擅长推理,不擅长在一堆噪音里替你猜意图。
失败做法二:只贴报错那一行
走向另一个极端:只复制 NullPointerException at line 42 这一行问 AI。AI 会给你一堆泛泛的可能原因列表,因为它看不到上下文——不知道这个异常发生前的调用链、请求参数、前一条 WARN 日志。
排查日志的真相是:报错行只是尸体,案发过程在前后的日志里。
失败做法三:把 AI 当搜索引擎用
「这个错误码什么意思?」——这种问题问 AI,和搜引擎区别不大,省不了你多少时间。AI 的真正价值不是解释单个错误,而是基于你服务的具体上下文做关联推理:把分散在多处的线索串起来,指出最可能的根因。如果你只把它当错误码翻译器,等于拿跑车去买菜。
二、正确的路径:AI 是排查流程的「推理中枢」
想清楚一件事:AI 在日志排查中的定位应该是——你负责收集现场,AI 负责关联推理和假设验证。正确的流程分四步:
第一步:预处理,给 AI 一份干净的现场
- 用
grep -C 20 "ERROR"把每个报错的前后各 20 行带出来,而不是全量日志; - 多个服务的话,按时间戳对齐,截取故障时间窗口内的片段;
- 脱敏:把 token、用户手机号、密钥替换成占位符。这一步不能省,尤其是日志要发给第三方 API 的时候。
第二步:给足业务上下文
这是拉开效果差距的关键。告诉 AI:这是什么服务、什么技术栈、报错时的触发场景(比如「用户反馈下单失败,集中在支付回调接口」)、你已经排除掉什么。上下文越具体,AI 的推理越贴近真相。
第三步:让 AI 输出结构化的排查假设
别问「这是什么问题」,要问「请基于以下日志给出按可能性排序的根因假设,以及每个假设的验证方法」。这样你拿到的是一份可执行的排查计划,而不是一段安慰性文字。
第四步:迭代验证,循环收窄
拿着 AI 给的第一假设去查,把新的发现(配置值、数据库状态、新增日志片段)再喂回去,让它更新判断。通常两三轮就能锁定根因。
三、可复制的提示词模板
把下面这段存成 snippet,每次排查时替换 {} 里的内容即可:
你是一位资深后端工程师,帮我排查线上服务报错。
## 服务背景
- 技术栈:{如 Java 17 + Spring Boot 3 + MySQL + Redis}
- 服务职责:{一句话描述,如:电商订单服务,负责下单与支付回调}
- 故障现象:{如:今日 14:00 起部分下单请求返回 500,占比约 5%}
## 已知信息
- 已排除:{如:数据库连接池未耗尽、磁盘未满、近期无发版}
- 相关变更:{如:昨天新增了优惠券校验逻辑}
## 日志片段(已脱敏,时间窗口 13:55-14:10)
{粘贴 grep -C 20 处理后的报错日志}
## 请你输出
1. 按可能性从高到低列出 3 个以内根因假设,说明推理依据(引用具体日志行);
2. 每个假设给出一个最快验证方法(查什么、执行什么命令);
3. 如果信息不足,明确列出你还需要我提供什么。
不要给泛泛的通用建议,所有推断必须基于日志和背景信息。模板的核心设计:限制假设数量(逼 AI 给出取舍)、要求引用日志依据(防止瞎编)、允许它索要更多信息(触发迭代循环)。
四、用 AI 前后对比
| 环节 | 之前 | 之后 |
|---|---|---|
| 定位相关日志 | 手工 grep 半小时起,关键词靠猜 | 预处理规则固定,几分钟出干净现场 |
| 形成排查假设 | 依赖个人经验,容易钻进第一个猜想的死胡同 | AI 给多条按概率排序的假设,视野更宽 |
| 深夜/独自值守 | 没人商量,只能硬啃 | 相当于身边多了个随时响应的陪跑工程师 |
| 复盘沉淀 | 事后懒得写 | 把最终结论喂回 AI,顺手生成排查记录 |
要诚实地说:AI 不保证一次命中根因,遇到冷门的中间件问题它也会绕弯路。但它把「一个人瞎摸」变成「有节奏的假设—验证循环」,这个流程上的改变,比单点省时间更值钱。
五、一点工具层面的建议
如果你在用多个模型做日志分析(比如推理用一个、长上下文塞日志用另一个),建议通过统一的网关层接入,好处是:换模型不用改代码、密钥集中管理、预算可控。我目前在用 ThisToken.AI 的网关,支持多家主流模型,具体模型列表和计费以官网价格页为准。新用户注册入口在这里:https://api.thistoken.ai/register
最后提醒一句安全底线:日志脱敏永远是第一步,无论工具多好用,用户数据和密钥都不能裸奔出门。
凌晨两点的报错不会消失,但你面对它的姿势可以变。下次再看到满屏 ERROR,先别急着 grep,试试把现场整理好,交给 AI 一起推。
---
不想折腾多家供应商的接入差异?在 https://api.thistoken.ai/register 注册,用一个 base_url 调用所有模型。