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 不可見
參考資料: