我没想到 Trae Solo 在"读日志"这件事上这么强。
要知道,日志分析是程序员永恒的痛点:格式乱、字段多、异常类型奇怪,经常一找 bug 就是两小时。
所以某天我突发奇想:
"我不如把 log 丢给 Trae Solo 让它帮我分析?"
结果------它比我写正则快五倍。
🧱 一、我把一段线上日志粘给它
如下:
ini
[2025-11-20 10:01:22] INFO Start task id=921
[2025-11-20 10:01:23] ERROR DbFailed error=db timeout user=103
[2025-11-20 10:01:24] WARN Retry attempt=2 id=921
然后说:
帮我解析日志字段,并告诉我字段之间的关系。
🧠 二、它直接给出结构化结果
Trae Solo 输出:
ini
timestamp
level
message
kv_pairs (如 id=user 等)
并自动分析字段类型:
- timestamp: datetime
- level: enum (INFO/WARN/ERROR)
- id: int
- attempt: int
- user: int
它还自动拆消息文本:
json
{
"timestamp": "2025-01-20 10:01:23",
"level": "ERROR",
"message": "DbFailed",
"db": "timeout",
"user": 103
}
你没看错------它自动识别 error=db timeout 是 key-value。
🧪 三、我让它写日志解析器,它 30 秒就完成了
python
import re
LOG_PATTERN = re.compile(
r'[(?P<ts>.*?)] (?P<level>[A-Z]+) (?P<msg>.*)'
)
def parse(line):
m = LOG_PATTERN.match(line)
if not m:
return None
data = m.groupdict()
# 解析 key=value
parts = data["msg"].split()
base = parts[0]
kv = {}
for p in parts[1:]:
if '=' in p:
k, v = p.split('=')
kv[k] = v
return {**data, **kv}
以前我写这种脚本要 20 分钟。
🔥 四、它还会帮你分析"异常链路"
我问它:
vbnet
这个 ERROR 是由什么引起的?
它回答:
ERROR DbFailed -> error=db timeout
很可能是数据库连接池耗尽
日志中 retry=2 表示系统正在重试
这分析和我手动查的结论一样。
🧭 五、我让它找出"出现频率最高的报错类型"
我把日志文件拖给它,它自动统计:
makefile
DbFailed: 203 次
Timeout: 51 次
PermissionDenied: 12 次
还会建议:
可以按 user 字段聚合,看看是否与特定用户相关。
完全是专业运维和后端工程师才会想到的点。
🎯 六、我现在用 Trae Solo 做这些:
- 日志解析
- 错误聚类
- 找最大异常来源
- 推断链路问题
- 批量格式化日志
- 自动提取字段
- 把 log 转成 CSV
再也不用手写一堆正则脚本。