奇妙的日志查询组合基础篇 | 七日打卡

1,689 阅读3分钟

引言

鲁迅曾经说过程序员不可能没有BUG.优秀的程序员不仅需要编码效率质量,更重要的是出现问题后那份沉着冷静以及能快速定位错误目标的自信.今天我们聊聊如何优雅的从log日志中准确筛选出你想要的信息.

介绍成员

Linux命令中有很多能查询日志的命令,简单查询大家应该都能胜任,下面罗列一些经常用到的Linux查询命令以及他们的常见语法

单个实践

以下实践过程以具体小例子便于理解记忆

cat

某天项目上线发现客户端突然报出异常,连接数据库配置不正确.这时我们可以用cat命令去打开该项目的数据库配置文件 cat xxxx.xml,直接可以显示出当前数据库配置文件的全貌,发现错误后我们可以通过vivim命令进行修改.

tail

tail命令应该是程序员最常用的一个查询日志命令.他的作用是显示出末尾的日志,可以加上-f进行滚动刷新查看.当然直接使用tailf xxx.log输出的结果是实时的,可能报错在之前,我们可以在f前带上行数,如tail -100f,表示输出末尾100行并持续滚动刷新.一般测试环境用这个命令查看就足够了,因为访问的人不多,日志滚动不是特别快.

grep

其实光看输出结果,用grepcat命令输出整个文件的输出结果一致.但是他支持的通配符和一些特殊的函数,可以强化cat的输出,这个后面我会用例子去说明他们的组合使用.

head

head命令和tail就是个反义词,tail取末尾,head就取开头,比如我想知道日志文件的前1000行打印了些什么日志,可以用命令head -1000f xxx.log去做到.

sed

它其实是一个编辑命令,但是我们可以用它的p打印行为,去精确打印我们的错误日志.譬如知道错误的行数在100-200行之间,我们就可以通过sed -n '100,200p' xxx.log,去精确找到我们想到报错信息.

more与less

more和less都是分页的语法,他可以把查询出来的长日志信息进行分页显示,区别在于more只能显示更多即不能上翻页,所以linux给我们另外一个命令less补充了向上翻页的功能.

后记

从上面的分析可以看出,这七个查询命令在查询的特色上各有千秋,那能不能把他们结合起来使用.让我们的日志查询更加智能灵活呢?答案是肯定的.组合也是优雅的.明天我会模拟几个场景来赘述他们的组合魅力.