一.需求
有时查看日志需要查询关键字,用tail -f xxx.log | grep $(key_words)就可以进行操作,但是又担心日志会有其他报错或者异常,因此需要查看所有日志的同时又可以进行对查询关键字高亮展示
二.解决方案
方案① tail -f 查看文件
tail -f xxx.log | perl -pe 's/($key_word)/\e[1;35m$1\e[0m/g'
perl在这里就是通过命令行的方式进行动态的替换关键字的操作,替换过程中,主要使用了Linux的console_codes的语法结构,\e主要进行转移说明。
显示效果如图1显示,搜索关键字com高亮显示:
图1
扩展:多条件筛选
tail -f xxx.log | perl -pe 's/(key_word1)/\e[1;35m$1\e[0m/g|s/(key_word2)/\e[1;36m$1\e[0m/g'
如图2可以展示2个关键字高亮展示,多个关键字一次类推就可以了
图2
字体颜色设置:
30m:黑 31m:红 32m:绿 33m:黄 34m:蓝 35m:紫 36m:青 37m:白
背景颜色设置:
40:黑 41:红 42:绿 43:黄 44:蓝 45:紫 46:青 47:白
其他参数说明
[1; 设置高亮加粗 [4; 下划线 [5; 闪烁
方案② less查看日志文件
less本身也支持类似于tail -f的操作,用less打开一个文件之后,按住【SHIFT+F】键,这样就直接进入follow的模式了,看上去跟tail -f效果是一样的。具体可分为以下3步:
步骤:
1.less xxx.log #打开log文件
2. /$(key_words)#log文件中搜索你要高亮的关键字,$(key_words)为想要搜索的关键字的效果
3.按住【SHIFT+F】键,进入follow模式,log日志实时写入可以进行显示,如图3,搜索INFO关键字,并实时输出
图3
扩展:想要显示多个筛选项,第2步可以写成 /$(key_words1) | $(key_words2)来进行多个关键字筛选,如图2所示,同时搜索INFO和com关键字的效果
图4