【易测试201604】一个Bug带来的若干思考

达芬奇密码2018-08-23 09:40

昨天看到教练在终端里面看日志。在xshell里面字体竟然只设置成9号。真是要瞎了我的钛合金狗眼了。

其实字体设置的小,不见得信息量更多。

那么技巧1就是把字体调大。调成14或者16。

另外看日志的时候其实更关注的是模式,也就是pattern。这是个什么意思呢,我们有个服务,每次升级完之后就看是关注日志,看有木有大量异常抛出来,要有就有问题了,所以其实不是具体关注到行,而是看这个模式有没有变化。

另外日志其实一直用tailf盯着也看不出啥花来。可不可以标注出更多有用的信息呢。比如颜色。因为日志里面其实关注的是一些特定的信息。比如关键词。

放狗一搜,果然有,从高大上的一体式解决方案到比较简陋的脚本方式。


简陋的方法

最简单的,只要 terminal 支持 ANSI escape sequences,那么就能支持色彩。不同的颜色是不同的序列。只要把关键词传到管道里面再用这个序列包裹一下,就是彩色的了。

比如 awk, sed, perl 都行


awk

tail -f /path/to/log | awk '
  /INFO/ {print "\033[32m" $0 "\033[39m"}
    /SEVERE/ {print "\033[31m" $0 "\033[39m"}
    '


sed

tail -f /path/to/log |
sed -e 's/\(.*INFO.*\)/\o033[32m\1\o033[39m/' \
        -e 's/\(.*SEVERE.*\)/\o033[31m\1\o033[39m/'


perl

tail -f catalina_2016-03-29.log | perl -pe 's/(your_word)/\e[1;31m$1\e[0m/g'

如果你在偷懒一点,封装上面的那个代码成一个shell的函数,放到bashrc里面去

那么以后就能这么调用

tail_color catalina_2016-03-29.log your_word


高大上的方法

现成的工具也很多

这里推荐的就没重样的: http://unix.stackexchange.com/questions/8414/how-to-have-tail-f-show-colored-output

其中集大成者为lnav。

效果图:

 

不过对于这个花花绿绿的审美我持有保留意见,感觉过犹不及啊。我猜张雨绮老师的设计师可能是lnav的爱好者 :) 。

之前试用过一下,这一直接按照一天具体哪个小时,哪个分钟段跳转。还有一些书签,搜索等等。


更详细的可以看看这个doc http://lnav.readthedocs.io/en/latest/hotkeys.html 

不过最大的问题在于服务器上能否让你装个程序,当然其实直接丢个二进制上去也是可以的。

另外比如云计算100多节点,每个节点打日志,一个个搜过来也是麻烦,这时候这种单机版的就hold不住了,是时候出动elk了。


网易云新用户大礼包:https://www.163yun.com/gift

本文来自网易实践者社区,经作者黄哲骁授权发布。