软件即沟通 书架

第 02 章 / 共 12 章

第二章 · 日志里的呼救

用户不会告诉你他卡住了,但日志会

每一台服务器都在不停地写日记。用户每点一次按钮、每打开一个页面、每触发一次错误,后台就记下一行。这本日记叫日志(log)——软件运行过程的流水账,本来是为了让工程师排查故障用的。

大多数工程师看日志的方式是「找异常」:哪行红了,哪行报错了,哪里响应超时了。但如果你换一种看法,把日志当成用户行为的录像带,你会看到完全不同的东西。

一行日志背后的三十秒

来看一段很多产品后台都真实存在的日志模式:

14:02:11 用户打开「修改手机号」页面
14:02:19 提交,失败:验证码错误
14:02:40 提交,失败:验证码错误
14:02:58 重新发送验证码
14:03:31 提交,失败:验证码错误
14:03:47 重新发送验证码
14:04:12 重新发送验证码
14:04:40 用户离开了页面,再没回来

在工程师眼里,这可能只是「验证码校验失败 3 次,重发 3 次」——没有红色异常,系统一切正常。但如果你把这段时间轴想象成一个人坐在手机前的样子:他盯着屏幕等短信,短信没来;他把旧验证码又输了一遍,错误;他再点重发,把手机翻过来扣在桌上等,还是没来;最后他放下手机去干别的了。

这不是一次「校验失败」,这是一个人挣扎了两分半钟,然后放弃了。日志里全是这样的呼救,只是它们穿着技术事件的外衣。

大白话:日志就像医院的走廊摄像头。医生(工程师)平时只看心电监护仪报警(系统异常),但摄像头里能看到一个病人扶着墙站不起来,按了三次呼叫铃没人理,最后自己走了。监护仪上一切正常。

挣扎有形状

看得多了,你会发现用户的挣扎在日志里有几种反复出现的「形状」:

每一种形状都是一句没说出口的话。而它们的共同点在于:系统层面一切正常,没有一个报错。如果只看异常监控,这些用户是隐形的。

为什么研发看不到这些

这不能怪工程师冷漠,这里有个结构性的问题:离日志最近的人,恰恰是最不需要这些提示的人。工程师对自己写的软件太熟了,他知道验证码在垃圾短信里、知道那个按钮要点左上角。他看日志时戴着「知情者」的眼镜,自动过滤掉了那些「这有什么好卡住的」的部分。

心理学里管这个叫知识的诅咒——人一旦掌握了某个知识,就很难想象「不知道这个知识」是什么感觉。写软件的人全都中了这个诅咒,而解药恰恰就躺在他们自己的服务器上:日志里那些打转、后退、断崖的轨迹,全都是「不知道的人」留下的脚印。

所以看日志的正确姿势,不是问「系统哪里坏了」,而是问「如果是我的妈妈在用,她会在第几行卡住」。同一个日志文件,这两个问题会带你看到完全不同的东西。

当然,日志里也有真正在「报错」的时刻——那是软件亲口对用户说话的时刻,也是整场对话里最诚实、最容易搞砸的时刻。下一章专门讲它。

软件即沟通 · 竹小竹8167
费曼式写法 · 由多个 AI 代理撰写与互相审校