這麼分析大檔案日誌,以後就不用加班捲了!

睡覺誰叫發表於2023-05-17

有沒有熟悉這樣的場景:

時間已過十一點,空蕩蕩的辦公室只剩自己孤身一人。陪你伏案忙碌的只有電腦風扇被迫營業的“嗡嗡”聲, 窗外的夜正黑得帶勁,彷彿巨獸的口吞噬自己的無奈。

天性善良不善言辭的你,容易被人頤指氣使,加班對你來說是家常便飯。

作為一名碼農,“我到底哪裡錯了,我需要怎麼解決?”是我的座右銘。但是,解決問題的過程需要耐心和細心,需要在大檔案日誌中尋找問題線索,耗費巨量的時間和精力。因此,加班分析並解決問題是常有的事情。

有時候想,如果分析日誌過程能高效,是不是就可以減少無意義的班?節約出來的時間老婆孩子熱炕頭豈不美哉。

本文介紹的 Notepad++ 和 AnalysePlugin 絕妙組合,在分析大檔案日誌上大放異彩,簡直是“神兵利器”,特別對初入職場的碼農,文字或者資料統計相關從業人員特別有用。職場老手應該都會有自己的獨家秘籍,見仁見智,沒有標準答案,能達成目標即好方法。文章是本人經驗總結,不喜勿噴,歡迎多多留言關注,謝謝~~~

話不多說,本文重點講解如何使用 Notpad++ 配合 AnalysePlugin 分析大檔案日誌,找到目標日誌資訊。

存在問題

大檔案日誌分析,我們需要一次性搜尋多個關鍵字,將面臨兩個問題。

一. 多日誌檔案,不知道關鍵字在哪些檔案裡

面對幾個 GB 的大檔案日誌,例如安卓系統應用出現無響應問題時,系統會自動生成多個異常跟蹤檔案並自動儲存,導致存在過多的日誌檔案。

如何找到關注日誌在哪個檔案呢?

通常的過程是這樣的:

for(int i = 1 ; i <= 日誌檔案數目;++i){
   1. 開啟單個日誌檔案
   2. bool result = ctrl + F 搜尋目標關鍵字
   if(result){
      3. 儲存。
   }
   4. 獲取儲存所有帶目標關鍵字日誌
   for(int j = 1 ; j <= 目標關鍵字日誌數目;++j){
      5. 開啟初步檔案看是否存在有用資訊,定位問題。
   }
}

是不是有點像大海撈針的感覺?

開啟所有的日誌檔案,然後一個個檢視是不是目標日誌檔案。該方法肯定可行,無非就是多花點時間。

只要方法是對的,總可以完成。然而,你有沒有想過,憑啥這種“不用腦子”的體力活要你幹?爺的時間就這麼不值錢嗎?有這時間刷刷劇,打把遊戲不香嗎?

二.無法有重點的分析日誌

舉個例子,我們需要在日誌檔案中查詢 "onLayout"、"SQLiteLog"、"java.lang.RuntimeException",以定位問題。在關注日誌時,我們需要注意以下幾點:

  1. 如果應用程式崩潰了,我們會重點關注 "java.lang.RuntimeException"。
  2. 如果沒有發現 "RuntimeException",則可能會關注與 "SQLiteLog" 相關的警告。
  3. 如果甚至連繫統警告都沒有,那麼只能檢視與應用程式相關的 "onLayout" 日誌。

通常的做法是直接搜尋關鍵字,這樣做雖然可行,但給人的感覺不夠直觀。由於螢幕小且高度近視,搜尋結果都是一堆黃色的漿糊,無法有效區分日誌級別,不利於重點突出地分析問題。

如下在Notepad++中的搜尋結果,只要是關鍵字都是黃色。

一般的處理思路是,將就著看就行,別沒事找事。被子反正第二天會睡不好,索性不疊了~~~,哈哈!

不過,碼農應該都有潔癖,長期沉浸在祖傳的“屎山”中,增刪改查,誰不都會說:“我去,垃圾程式碼!”如果是我,我會怎麼怎麼做。

看吧,是個人都不會將就,如果有更好的選擇 ?。

如何解決

一. 如何在多檔案中快速查詢目標關鍵字

首先,你得安裝一個Notepad++

不會的去問度娘或谷歌,細講只會拉低本文件次和目標人群,再次重申,本文只適合高階高智商帥哥美女閱讀!

其次,批次選中需要搜尋的多個檔案,右鍵開啟方式中選中 Notepad++ 開啟。

如果 Notepad++ 之前開啟過其他檔案,可以先關閉,不要影響到這次開啟檔案就行,保證當前開啟都是目標搜尋檔案,不然影響搜尋結果。

最後,你自己操作一遍。

如下是我為你準備的愛心錄屏。我同時選中了多個檔案,然後在這些檔案中搜尋關鍵字“ANR”。結果顯示所有開啟的檔案中有兩個檔案包含該關鍵字,這樣我就知道這兩個檔案是有用的,其他的可以不用管。

二. 如何有重點的分析日誌

可透過 AnalysePlugin 外掛來解決。

AnalysePlugin 支援正規表示式或轉義模式搜尋日誌,併為每個搜尋設定不同顏色。搜尋結果將按照與原點相同的順序儲存在固定視窗中,雙擊可以跳轉到原始位置。

效果如下:

如何安裝 AnalysePlugin

步驟:NotePad++ → 外掛 → 外掛管理 → 搜尋 AnalysePlugin→ 勾選 → 點選右側安裝,安裝成功後會出現一個獨有圖示,這就表示安裝成功。

愛心影片如下:

如何使用

還是以開頭例子來說明:查詢”onLayout”、”SQLiteLog”、”java.lang.RuntimeException” 並且區分日誌級別,onLayout 用藍色表示,SQLiteLog 用黃色表示,而異常 java.lang.RuntimeException 則用紅色表示。

如圖所示按照如下步驟來新增和設定顏色。

AnalysePlugin 選單中有很多配置可以設定。例如,Colour BG 可以設定背景色。Search type 中支援正規表示式等。Comment 還可以給關鍵字新增註釋。這裡不再一一介紹。

這樣,我們就可以將日誌區分開來,關注我們定義的日誌級別,有針對性地分析日誌。

注意事項

官方說明 NotePad++ 需要 ≥ 5.1 以上才支援 AnalysePlugin。

總結

本文重點介紹如何分析大型日誌檔案的兩個主要步驟。第一個是如何在多個檔案中找到需要關注的檔案,第二個是如何在關注的檔案中直觀地檢視關鍵字,以便有針對性地解決問題。

每個人解決問題的方式都不同,希望可以將更好的方法分享給大家。我認為隨著自然語言處理技術的發展,我們可能不需要這些技巧了。透過自然語言處理技術,將所有日誌錄入,讓計算機理解,然後直接讓它分析問題並給出方案即可。目前我還沒有找到這樣的工具,如果有大佬們發現了,也歡迎分享哦~~。

相關文章