stdout log
日志实时高亮显示其实就是把特定的关键词搜索出来替换为 ANSI escape codehtml
perl -pe 's/<pattern>;/<replacement>;/g'
egrep
关键词替换 egrep "fatal|error|warning|info|debug" -A10 -B10 --color=auto
perl 的方式能够指定不一样的关键词不一样的颜色,egrep 自定义颜色估计很麻烦。
建立一个文本文件linux
vim test.txt
输入以下内容:git
error xxxx bbb wr fatal info debug dkjk info error warning info info
perl -pe 正则替换关键词github
cat test.txt | perl -pe 's/(fatal)/\e[0;41;37m$1\e[0m/g; s/(error)/\e[1;31m$1\e[0m/g; s/(warning)/\e[1;33m$1\e[0m/g; s/(info)/\e[1;32m$1\e[0m/g; s/(debug)/\e[1;34m$1\e[0m/g; s/(wechat)/\e[1;35m$1\e[0m/g'
效果:golang
egrep正则表达式
cat test.txt | egrep "fatal|error|warning|info|debug" -A10 -B10 --color=auto
效果:sql
stdout log
处理咱们以 golang
程序为例vim
go test -v | egrep "fatal|error|warning|info|debug" -A10 -B10 --color=auto go test -v | perl -pe 's/(fatal)/\e[0;41;37m$1\e[0m/g; s/(error)/\e[1;31m$1\e[0m/g; s/(warning)/\e[1;33m$1\e[0m/g; s/(info)/\e[1;32m$1\e[0m/g; s/(debug)/\e[1;34m$1\e[0m/g; s/(wechat)/\e[1;35m$1\e[0m/g'
go run main.go | ...
跟上面同样处理。golang
有一个这个包 github.com/fatih/color,能够直接在程序中就这样子输出,用了一段时间,感受日志仍是只作日志的事情,不要搞得花里胡哨的,要 review 日志的时候,用这两种方式来过滤, 或者丢到ELK
里面去。
这个就不贴图了,跟用tail -f -n 50 /usr/local/var/postgres/log/postgresql-2018-05-24_000000.log | egrep "STATEMENT|LOG" -A10 -B10 --color=auto
以及上面的 cat
效果都是同样的。post
echo -e "\033[30m 黑色字 \033[0m" echo -e "\033[31m 红色字 \033[0m" echo -e "\033[32m 绿色字 \033[0m" echo -e "\033[33m 黄色字 \033[0m" echo -e "\033[34m 蓝色字 \033[0m" echo -e "\033[35m 紫色字 \033[0m" echo -e "\033[36m 天蓝字 \033[0m" echo -e "\033[37m 白色字 \033[0m" echo -e "\033[40;37m 黑底白字 \033[0m" echo -e "\033[41;37m 红底白字 \033[0m" echo -e "\033[42;37m 绿底白字 \033[0m" echo -e "\033[43;37m 黄底白字 \033[0m" echo -e "\033[44;37m 蓝底白字 \033[0m" echo -e "\033[45;37m 紫底白字 \033[0m" echo -e "\033[46;37m 天蓝底白字 \033[0m" echo -e "\033[47;30m 白底黑字 \033[0m"
详细说明:测试
\e[F;B;Om
\e
转义字符开始,ESC
的 ASCII
码用十进制表示就是 27
,等于用八进制表示的 033
。
\e
或 \033
声明了转义序列的开始[
开始定义颜色。F
为字体颜色,编号30~37
;B
为背景色,编号40~47
。O
为特殊意义代码m
是标记m
后面不用跟空格,是所定义的彩色字和背景颜色表
前景 背景颜色 ------------------------- 30 40 黑色 31 41 红色 32 42 绿色 33 43 黄色 34 44 蓝色 35 45 洋红 36 46 青色 37 47 白色 特别代码意义 ------------------------- 0 OFF 1 高亮显示 4 underline 5 闪烁 7 反白显示 8 不可见
参考资料: