日志实时监控与分析:使用 tail 和 grep 提升开发者日志管理技能

查看日志是一个程序员必备的技能,尤其是项目部署在linux系统,当线上出现问题的时候除了日志平台能够直观的查看项目的运行情况以外,用的最多的可能就是在linux中查看日志了,虽然通过cat或tail都可以很直观的观察实时日志的打印,但日志多的情况下你是否也需要一行一行的看执行结果呢,这样显然是时分浪费时间的,今天就说一下节省时间的查看日志方式。

1. 实时查看日志

lua 复制代码
tail -f nohup.log

上述命令将持续输出日志文件的尾部内容,并在文件有新的日志条目时实时刷新。

控制台打印样例

2. 过滤查看日志

有时候,日志文件可能包含大量信息,但我们只对某些特定的关键字感兴趣。这时,grep 命令就派上用场了。例如,如果我们只关心包含 "206" 的日志:

bash 复制代码
tail -f test.log | grep "206"

控制台打印样例

如果想过滤多个字段呢,又该怎么写

tail -f test.log | grep "206|Kafk"

只需要在原来的基础上用|分开即可

控制台打印样例

缺点是什么

这样输出格式只会输出过滤字段所在的行,如果行中不包含过滤字段,则整行日志都不会输出,那假如说有错误日志输出的情况下还是看不了,这样做还是不太方便,那怎么做才是最合理的呢,继续向下看

3. 实时输出+高亮展示+全部内容

现在只需要对tail -f test.log | grep "206|Kafk"命令优化一下即可,优化后的命令:tail -f test.log | grep -E "206|Kafk|$"在末尾追加|$,日志便可以输出所有,意思是匹配到的日志就高亮,匹配不到的则正常输出

控制台打印样例

条件字段不但高亮了而且后续的内容也展示出来了,这样看日志的效率肯定会提高不少

4. 进阶

如果你还想整点花活,那一定少不了进阶版本,命令如下

tail -f test.log | grep -E ".*206.*|Kafk|$"以条件内容206为例,在原来的基础上用.*包裹条件内容,那么输出的格式就是匹配到的条件整行都高亮展示

控制台打印样例

相关推荐
Lynko3 分钟前
C语言指针高阶
后端
the局外人4 分钟前
学习 FastAPI 的 Day 2:用异步 ORM 完成增删改查
后端·python·fastapi
SamDeepThinking9 分钟前
if嵌套最好控制在3层以内
java·后端·程序员
苏渡苇11 分钟前
Spring Insight 里上报 Span 为什么用 JDK HttpClient 而不是 RestTemplate
java·后端·spring·spring cloud·springboot·性能监控
tonydf12 分钟前
AI驱动历史项目安全审查
后端·ai编程
她的男孩28 分钟前
同一个接口,为什么销售只看到自己的订单?我拆了 681 行数据权限拦截器的源码
java·后端·架构
元界metalite30 分钟前
SpringBoot接口通用响应对象设计 - 一个 Resp 管理五种责任
后端
对象存储与RustFS33 分钟前
把 RustFS 跑在 Kubernetes 上:官方 Helm Chart 从单机到分布式
后端·rust·开源
SimonKing1 小时前
将cURL 命令直接变成 Java 代码?用JQuick-Curl搞起来
java·后端·程序员
大牧师1 小时前
Nest.js 微服务入门教程
开发语言·javascript·后端·微服务·node.js·nest.js·nest