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

2023-05-17 09:00:41

有沒有熟悉這樣的場景:

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

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

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

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

本文介紹的 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++中的搜尋結果,只要是關鍵字都是黃色。

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

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

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