有沒有熟悉這樣的場景: 時間已過十一點,空蕩蕩的辦公室只剩自己孤身一人。陪你伏案忙碌的只有電腦風扇被迫營業的“嗡嗡”聲, 窗外的夜正黑得帶勁,仿佛巨獸的口吞噬自己的無奈。 天性善良不善言辭的你,容易被人頤指氣使,加班對你來說是家常便飯。 作為一名碼農,“我到底哪裡錯了,我需要怎麼解決?”是我的座右銘 ...
有沒有熟悉這樣的場景:
時間已過十一點,空蕩蕩的辦公室只剩自己孤身一人。陪你伏案忙碌的只有電腦風扇被迫營業的“嗡嗡”聲, 窗外的夜正黑得帶勁,仿佛巨獸的口吞噬自己的無奈。
天性善良不善言辭的你,容易被人頤指氣使,加班對你來說是家常便飯。
作為一名碼農,“我到底哪裡錯了,我需要怎麼解決?”是我的座右銘。但是,解決問題的過程需要耐心和細心,需要在大文件日誌中尋找問題線索,耗費巨量的時間和精力。因此,加班分析並解決問題是常有的事情。
有時候想,如果分析日誌過程能高效,是不是就可以減少無意義的班?節約出來的時間老婆孩子熱炕頭豈不美哉。
本文介紹的 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",以定位問題。在關註日誌時,我們需要註意以下幾點:
- 如果應用程式崩潰了,我們會重點關註 "java.lang.RuntimeException"。
- 如果沒有發現 "RuntimeException",則可能會關註與 "SQLiteLog" 相關的警告。
- 如果甚至連繫統警告都沒有,那麼只能查看與應用程式相關的 "onLayout" 日誌。
通常的做法是直接搜索關鍵字,這樣做雖然可行,但給人的感覺不夠直觀。由於屏幕小且高度近視,搜索結果都是一堆黃色的漿糊,無法有效區分日誌級別,不利於重點突出地分析問題。
如下在Notepad++中的搜索結果,只要是關鍵字都是黃色。
一般的處理思路是,將就著看就行,別沒事找事。被子反正第二天會睡不好,索性不疊了~~~,哈哈!
不過,碼農應該都有潔癖,長期沉浸在祖傳的“屎山”中,增刪改查,誰不都會說:“我去,垃圾代碼!”如果是我,我會怎麼怎麼做。
看吧,是個人都不會將就,如果有更好的選擇