可能是最好用的日誌分析工具

在使用這個工具之前,我一直在用PID Cat為ADB輸出的Logcat進行分析,如果是後台拉用戶日誌,可能只能依靠眼力還有Atom之類的工具了,這些其實還好,眼力練習練習總能從密密麻麻的日誌中總找到自己想要的,雖然比較費神。不過比較影響工作效率的是,經常工作被打斷,原因是總有同學要我查下日誌看看是不是我們網路的問題。

深諳如此低效的我在網上谷歌了一圈沒有找到我想要的工具,最後我還是選擇自己寫一個,這就是今天的主角:okcat,寫之前我列出了所有我想要的需求:

  • 支持為多個關鍵字高亮,並且不同關鍵字高亮的背景顏色儘可能不同
  • 支持為多個TAG的關鍵字過濾,如果任意一個關鍵字被TAG包含,說明是有效日誌行
  • 支持自定義一行日誌的正則表達式,因為幾類日誌每行的格式有所不同,並且很多後端的同學也有想要日誌分析工具的需求
  • 支持為多個內容轉譯,比如某行日誌內容開頭是connected-,那麼在輸出後應該轉譯為| SPDY已經連接 | connected-xxx xxx,並且對轉譯的譯文進行高亮
  • 支持為多個TAG轉譯,比如如果某行日誌的TAG包含ActivityLifecycle,那麼他肯定是事件,我可以加一個事件關鍵字: MyActivityLifecycle [事件] MainActivity onResumed,並且對轉譯的譯文背景進行高亮
  • 支持對多個無用消息降低存在感處理,比如各種心跳日誌其實沒有大用,而且列印很頻繁,需要對其用灰色進行著色,降低其可見度
  • 支持根據特定內容進行分段,比如某一段日誌開始其實是一個數據包流的開始,那麼就要將日誌分段
  • 支持配置可長期維護,並且支持維護各種各樣的配置,如網路相關的維護一個,社交相關的維護一個
  • 對於我來說需要支持分析文件,還需要支持分析運行中應用的ADB LOGCAT
  • 安裝簡單、操作簡單

目前,上面提到的需求都已經全部完成~。並且目前該工具已經開源: github.com/Jacksgong/ok

使用okcat最大的好處是,配置可維護行,各種配置編寫一次,」終身」受益,並且在提高日誌分析效率的同時,也為其他原本只能通過找你才看的懂日誌的同學帶去希望。

下面我們就以完成對FileDownloader開源庫中的demo project的運行時ADB的實時日誌進行分析為案例,進行使用okcat,最終你會看到如封面圖片的效果:

1. 安裝

sudo pip install okcatn

2. 拉取filedownloader.yml

創建目錄~/.okcat,並且下載filedownloader.yml文件到該目錄下。(這個配置文件內的配置解讀可以參考這裡)

3. 完成

將手機連接電腦,安裝好FileDownloader開源庫中的demo project後運行,然後在終端執行:

okcat -y=filedownloadern

就這樣,非常簡單,現在你就可以看到實時的對ADB LOGCAT日誌持續分析的輸出了。當然如果需要在分析實時日誌時清空前面LOGCAT的緩存,在執行命令後面加上-c即可。

關於分析日誌文件也非常簡單,而配置文件的規則也十分清新簡單,具體請參考這裡的中文文檔,也期待大家PR與STAR。


推薦閱讀:

請對logstash與flume做比較?
有哪些基於ELK的億級實時日誌分析平台實踐的案例?
ELK 實時日誌分析平台環境搭建
從DSL扯開去
有用過Splunk的嗎,大家都用Splunk做什麼?

TAG:日志分析 | 开发工具 | 程序猿生存必备 |