沉默是金,总会发光

大家好,我是沉默

前段时间公司来了个新同事,年轻、有活力,就是查日志的方式让我差点当场喊出:“兄弟,你是来写代码的,还是来找日志谈恋爱的?”

**-**01-

发生什么事

事情经过是这样的:
他写的代码在测试环境报错了,钉钉机器人把报警甩到了群里。我心想,这波正好摸鱼+带新人,顺便表现一波。

结果没想到,他先来了一句:

tail -f a.log | grep "java.lang.NullPointerException"

想着等下次报错就能立刻抓到。等半天,终于蹦出来一行:

2025-07-03 11:38:48.339 [...] java.lang.NullPointerExceptionjava.lang.NullPointerException: null

我提醒他一句:“兄弟,这样看不到堆栈信息啊。”
他“哦”了一声,然后用 vi 打开整个文件,/NullPointerException 搜关键词,一个 n 一个 n 地翻……
半分钟过去了,异常在哪都没找全。

我人都傻了,当场掏出压箱底的查日志组合拳

教完之后,新人一拍大腿:“妙啊!快写成文章,我发给我前同事看看,他们也是这么翻日志的……”

那既然都这么说了,今天这套查日志秘籍我就公开放送。

- 02-

查日志组合拳

核心武器:grep
灵魂奥义:-A、-B、-C、-H、-i、-c

我直接按场景教你,照着用就行。

场景一:查异常堆栈,绝不能只看一行!

Java 异常堆栈动不动几十行,只用 grep 匹配关键词,你永远只看得到最上面那一行。

正确姿势:

grep -A 50 "java.lang.NullPointerException" a.log

-A 50 的意思是匹配到的行+后面 50 行,堆栈信息一览无余。

怕刷屏?加 less 分页:

grep -A 50 "java.lang.NullPointerException" a.log | less

在 less 里你可以:

  • ↑↓ / PageUp PageDown 滚动
  • G 直达末尾
  • /Exception 继续搜索
  • q 退出

从此告别 vi + / 的痛苦!

场景二:实时看新日志

应用正在跑,随时可能报错?这时候直接 tail 跟进:

tail -f a.log | grep -A 50 "java.lang.NullPointerException"

报错一来,堆栈直接推到你面前。
大小写怕拼错?加 -i 忽略大小写。

想停?Ctrl + C

场景三:翻历史日志 & 压缩日志

线上日志常常被分片+压缩,变成 a.log.2025-07-02.gz。这时候别傻傻解压。

查所有 .log 文件:

grep -H -A 50 "java.lang.NullPointerException" *.log

查 .gz 文件:

zgrep -H -A 50 "java.lang.NullPointerException" *.gz

-H 会打印文件名,帮你知道异常在哪一天爆的。

场景四:统计异常数量

你想知道异常是偶发还是疯狂刷屏?

grep -c "java.lang.NullPointerException" a.log

多文件:

grep -c "java.lang.NullPointerException" *.log

很快就能知道是 “今天抽风一次”,还是 “系统已经炸锅”。

- 03-

常用 grep 参数对照表

参数含义
-A N显示匹配行之后 N 行
-B N显示匹配行之前 N 行
-C N显示匹配行上下文 N 行
-H打印文件名
-i忽略大小写
-r递归搜索子目录
-c统计匹配数量

例子:

grep -C 25 "java.lang.NullPointerException" a.log

这会把异常上下文都拉出来,一眼就能看出前因后果。

**-****04-**总结

江湖规矩,留一手

这套组合拳,我传给了新同事,现在也传给了你。
如果旁边同事还在 vi + / 地翻日志,

你就可以稳稳站出来说一句:“哥们,这活交给我吧。”

当然啦,江湖规矩,我今天只放了 grep 这一套。
其他更狠的工具(awkwcsed、日志聚合神器 ELK)我还藏着。

想学?点赞+收藏+关注就是报名,下次我写一篇,再传你第二套大招。

**-****05-**粉丝福利

我这里创建一个程序员成长&副业交流群, 


 和一群志同道合的小伙伴,一起聚焦自身发展, 

可以聊:


技术成长与职业规划,分享路线图、面试经验和效率工具, 




探讨多种副业变现路径,从写作课程到私活接单, 




主题活动、打卡挑战和项目组队,让志同道合的伙伴互帮互助、共同进步。 




如果你对这个特别的群,感兴趣的, 
可以加一下, 微信通过后会拉你入群, 
 但是任何人在群里打任何广告,都会被我T掉。 
本站提供的所有下载资源均来自互联网,仅提供学习交流使用,版权归原作者所有。如需商业使用,请联系原作者获得授权。 如您发现有涉嫌侵权的内容,请联系我们 邮箱:[email protected]