日志实时监控与分析:使用 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为例,在原来的基础上用.*包裹条件内容,那么输出的格式就是匹配到的条件整行都高亮展示

控制台打印样例

相关推荐
余槐i2 小时前
PostgreSQL 函数索引报错 must be immutable:3种绕法与代价
数据库·后端·sql·postgresql·性能优化
需要8262 小时前
Spring Bean 生命周期:从实例化到销毁的完整钩子
java·后端·spring
凤山老林3 小时前
Spring Boot 接入国密 SM2/SM3/SM4 的一些实践记录
spring boot·后端·python
伯恩bourne4 小时前
Spring Boot Bean 注册的两种方式:@Component 家族 vs @Configuration + @Bean
java·spring boot·后端
张彦峰ZYF4 小时前
停顿短不等于延迟低:G1、ZGC 与低延迟服务的目标分野、代价账本与选型标定
后端·回收暂停、应用停止总时长·到达安全点、分配停滞·屏障吃吞吐、并发线程吃核心·并发窗口吃堆余量·分区式靠挑回收集兑现目标·染色指针式不支持压缩引用
pride.li5 小时前
第03章 Python 教程-基础语法:注释与变量
服务器·前端·后端·python·算法·计算机视觉
upala5 小时前
【仓颉语言入门 · 第二篇 第 6 课】
后端
罗丹丹Luna5 小时前
移动端显示“已提交”以后:SAP 与低代码集成该怎样暴露真实状态
后端·架构
码事漫谈5 小时前
因为太想讨好你,所以AI会骗你
后端
吴凡wudianmei5 小时前
每调一次模型都花钱?如何用工程手段把调用压到最少?
前端·后端·架构