昨天看到教練在終端里面看日志。在xshell里面字體竟然只設(shè)置成9號(hào)。真是要瞎了我的鈦合金狗眼了。
其實(shí)字體設(shè)置的小,不見(jiàn)得信息量更多。
那么技巧1就是把字體調(diào)大。調(diào)成14或者16。
另外看日志的時(shí)候其實(shí)更關(guān)注的是模式,也就是pattern。這是個(gè)什么意思呢,我們有個(gè)服務(wù),每次升級(jí)完之后就看是關(guān)注日志,看有木有大量異常拋出來(lái),要有就有問(wèn)題了,所以其實(shí)不是具體關(guān)注到行,而是看這個(gè)模式有沒(méi)有變化。
另外日志其實(shí)一直用tailf盯著也看不出啥花來(lái)??刹豢梢詷?biāo)注出更多有用的信息呢。比如顏色。因?yàn)槿罩纠锩嫫鋵?shí)關(guān)注的是一些特定的信息。比如關(guān)鍵詞。
放狗一搜,果然有,從高大上的一體式解決方案到比較簡(jiǎn)陋的腳本方式。
簡(jiǎn)陋的方法
最簡(jiǎn)單的,只要 terminal 支持 ANSI escape sequences,那么就能支持色彩。不同的顏色是不同的序列。只要把關(guān)鍵詞傳到管道里面再用這個(gè)序列包裹一下,就是彩色的了。
比如 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'
如果你在偷懶一點(diǎn),封裝上面的那個(gè)代碼成一個(gè)shell的函數(shù),放到bashrc里面去
那么以后就能這么調(diào)用
tail_color catalina_2016-03-29.log your_word
高大上的方法
現(xiàn)成的工具也很多
這里推薦的就沒(méi)重樣的:
http://unix.stackexchange.com/questions/8414/how-to-have-tail-f-show-colored-output
- grc, the generic colouriser is pretty cool
- ccze , http://pwet.fr/man/linux/commandes/ccze
- rainbow, https://github.com/nicoulaj/rainbow
- lnav,http://lnav.org/
其中集大成者為lnav。
效果圖:
不過(guò)對(duì)于這個(gè)花花綠綠的審美我持有保留意見(jiàn),感覺(jué)過(guò)猶不及啊。我猜張雨綺老師的設(shè)計(jì)師可能是lnav的愛(ài)好者 :) 。
之前試用過(guò)一下,這一直接按照一天具體哪個(gè)小時(shí),哪個(gè)分鐘段跳轉(zhuǎn)。還有一些書(shū)簽,搜索等等。
更詳細(xì)的可以看看這個(gè)doc
http://lnav.readthedocs.io/en/latest/hotkeys.html
不過(guò)最大的問(wèn)題在于服務(wù)器上能否讓你裝個(gè)程序,當(dāng)然其實(shí)直接丟個(gè)二進(jìn)制上去也是可以的。
另外比如云計(jì)算100多節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)打日志,一個(gè)個(gè)搜過(guò)來(lái)也是麻煩,這時(shí)候這種單機(jī)版的就hold不住了,是時(shí)候出動(dòng)elk了。