最近在服务器上查看项目运行日志的时候,发现默认的颜色看起来不爽,就搞了个脚本进行彩色打印。
效果图
1.首先参考网上大佬写的正则
可以自己写正则,打印自己喜欢的颜色
perl -pe's/(INFO)|(DEBU G)|(WARN)|(ERROR)|(^[0-9-:.\s]{10,23})|((?<=[OGNR]\s)[0-9]{1,5})|((?<=\[.{15}\]\s).{1,40}(?=\s(:\s)|\s))/\e[1;32m$1\e[0m\e[1;36m$2\e[0m\e[1;33m$3\e[0m\e[1;31m$4\e[0m\e[1;34m$5\e[0m\e[1;35m$6\e[0m\e[1;36m$7\e[0m/g'
2.然后写个小脚本
名字随便取
vim tailf_color_print.sh
写入以下代码
# /bin/sh
tail -f $1 | perl -pe's/(INFO)|(DEBUG)|(WARN)|(ERROR)|(^[0-9-:.\s]{10,23})|((?<=[OGNR]\s)[0-9]{1,5})|((?<=\[.{15}\]\s).{1,40}(?=\s(:\s)|\s))/\e[1;32m$1\e[0m\e[1;36m$2\e[0m\e[1;33m$3\e[0m\e[1;31m$4\e[0m\e[1;34m$5\e[0m\e[1;35m$6\e[0m\e[1;36m$7\e[0m/g'
这里是运行的tail -f 命令,$1 是要传进来的参数,即要打印的日志文件名。
还可以写其他的 tail 命令,比如 tail -n ,$1 为打印的行数, $2 为要打印的日志文件名
# /bash/bin
tail -n $1 $2 | perl -pe's/(INFO)|(DEBUG)|(WARN)|(ERROR)|(^[0-9-:.\s]{10,23})|((?<=[OGNR]\s)[0-9]{1,5})|((?<=\[.{15}\]\s).{1,40}(?=\s(:\s)|\s))/\e[1;32m$1\e[0m\e[1;36m$2\e[0m\e[1;33m$3\e[0m\e[1;31m$4\e[0m\e[1;34m$5\e[0m\e[1;35m$6\e[0m\e[1;36m$7\e[0m/g'
3.保存,给脚本赋权
chmod +x tailf_color_print.sh
如果不是root用户记得加sudo
4.使用。
可能有更多简便的使用方法,因为对脚本没什么研究,所以直接放在根目录的
1.tail -f 使用:
/tailf_color_print.sh 日志名称
2.tail -n 使用:
/tailn_color_print.sh 打印行数 日志名称
5.总结
没什么技术含量,只是tail 命令加正则拼接,当日志数据特别多的时候方便排查。做个记录。