主頁 > 移動端開發 > 這么分析大檔案日志,以后就不用加班卷了!

這么分析大檔案日志,以后就不用加班卷了!

2023-05-17 08:01:18 移動端開發

有沒有熟悉這樣的場景:

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

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

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

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

本文介紹的 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,

總結

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

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

轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/552648.html

標籤:其他

上一篇:跑步課程匯入能力,助力科學訓練

下一篇:返回列表

標籤雲
其他(159165) Python(38143) JavaScript(25431) Java(18048) C(15227) 區塊鏈(8267) C#(7972) AI(7469) 爪哇(7425) MySQL(7191) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5871) 数组(5741) R(5409) Linux(5340) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4572) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2433) ASP.NET(2403) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) .NET技术(1975) 功能(1967) Web開發(1951) HtmlCss(1938) python-3.x(1918) C++(1917) 弹簧靴(1913) xml(1889) PostgreSQL(1878) .NETCore(1861) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 【從零開始擼一個App】Dagger2

    Dagger2是一個IOC框架,一般用于Android平臺,第一次接觸的朋友,一定會被搞得暈頭轉向。它延續了Java平臺Spring框架代碼碎片化,注解滿天飛的傳統。嘗試將各處代碼片段串聯起來,理清思緒,真不是件容易的事。更不用說還有各版本細微的差別。 與Spring不同的是,Spring是通過反射 ......

    uj5u.com 2020-09-10 06:57:59 more
  • Flutter Weekly Issue 66

    新聞 Flutter 季度調研結果分享 教程 Flutter+FaaS一體化任務編排的思考與設計 詳解Dart中如何通過注解生成代碼 GitHub 用對了嗎?Flutter 團隊分享如何管理大型開源專案 插件 flutter-bubble-tab-indicator A Flutter librar ......

    uj5u.com 2020-09-10 06:58:52 more
  • Proguard 常用規則

    介紹 Proguard 入口,如何查看輸出,如何使用 keep 設定入口以及使用實體,如何配置壓縮,混淆,校驗等規則。

    ......

    uj5u.com 2020-09-10 06:59:00 more
  • Android 開發技術周報 Issue#292

    新聞 Android即將獲得類AirDrop功能:可向附近設備快速分享檔案 谷歌為安卓檔案管理應用引入可安全隱藏資料的Safe Folder功能 Android TV新主界面將顯示電影、電視節目和應用推薦內容 泄露的Android檔案暗示了傳說中的谷歌Pixel 5a與折疊屏新機 谷歌發布Andro ......

    uj5u.com 2020-09-10 07:00:37 more
  • AutoFitTextureView Error inflating class

    報錯: Binary XML file line #0: Binary XML file line #0: Error inflating class xxx.AutoFitTextureView 解決: <com.example.testy2.AutoFitTextureView android: ......

    uj5u.com 2020-09-10 07:00:41 more
  • 根據Uri,Cursor沒有獲取到對應的屬性

    Android: 背景:呼叫攝像頭,拍攝視頻,指定保存的地址,但是回傳的Cursor檔案,只有名稱和大小的屬性,沒有其他諸如時長,連ID屬性都沒有 使用 cursor.getInt(cursor.getColumnIndexOrThrow(MediaStore.Video.Media.DURATIO ......

    uj5u.com 2020-09-10 07:00:44 more
  • Android連載29-持久化技術

    一、持久化技術 我們平時所使用的APP產生的資料,在記憶體中都是瞬時的,會隨著斷電、關機等丟失資料,因此android系統采用了持久化技術,用于存盤這些“瞬時”資料 持久化技術包括:檔案存盤、SharedPreference存盤以及資料庫存盤,還有更復雜的SD卡記憶體儲。 二、檔案存盤 最基本存盤方式, ......

    uj5u.com 2020-09-10 07:00:47 more
  • Android Camera2Video整合到自己專案里

    背景: Android專案里呼叫攝像頭拍攝視頻,原本使用的 MediaStore.ACTION_VIDEO_CAPTURE, 后來因專案需要,改成了camera2 1.Camera2Video 官方demo有點問題,下載后,不能直接整合到專案 問題1.多次拍攝視頻崩潰 問題2.雙擊record按鈕, ......

    uj5u.com 2020-09-10 07:00:50 more
  • Android 開發技術周報 Issue#293

    新聞 谷歌為Android TV開發者提供多種新功能 Android 11將自動填表功能整合到鍵盤輸入建議中 谷歌宣布Android Auto即將支持更多的導航和數字停車應用 谷歌Pixel 5只有XL版本 搭載驍龍765G且將比Pixel 4更便宜 [圖]Wear OS將迎來重磅更新:應用啟動時間 ......

    uj5u.com 2020-09-10 07:01:38 more
  • 海豚星空掃碼投屏 Android 接收端 SDK 集成 六步驟

    掃碼投屏,開放網路,獨占設備,不需要額外下載軟體,微信掃碼,發現設備。支持標準DLNA協議,支持倍速播放。視頻,音頻,圖片投屏。好點意思。還支持自定義基于 DLNA 擴展的操作動作。好像要收費,沒體驗。 這里簡單記錄一下集成程序。 一 跟目錄的build.gradle添加私有mevan倉庫 mave ......

    uj5u.com 2020-09-10 07:01:43 more
最新发布
  • 這么分析大檔案日志,以后就不用加班卷了!

    有沒有熟悉這樣的場景: 時間已過十一點,空蕩蕩的辦公室只剩自己孤身一人。陪你伏案忙碌的只有電腦風扇被迫營業的“嗡嗡”聲, 窗外的夜正黑得帶勁,仿佛巨獸的口吞噬自己的無奈。 天性善良不善言辭的你,容易被人頤指氣使,加班對你來說是家常便飯。 作為一名碼農,“我到底哪里錯了,我需要怎么解決?”是我的座右銘 ......

    uj5u.com 2023-05-17 08:01:18 more
  • 跑步課程匯入能力,助力科學訓練

    HUAWEI Health Kit為開發者提供用戶自定義的跑步課程匯入介面,便于用戶在華為運動健康App和華為智能穿戴設備上查看來自生態應用的訓練課表,開啟科學、適度的運動訓練。 跑步課程匯入能力支持生態應用在獲取用戶的華為帳號授權后,將跑步課程資料寫入至華為運動健康App,并在已有的華為智能穿戴設 ......

    uj5u.com 2023-05-12 10:43:01 more
  • 京喜APP - 圖片庫優化

    京喜APP早期開發主要是快速原生化迭代替代原有H5,提高用戶體驗,在這期間也積累了不少性能問題。之后我們開始進行一些性能優化相關的作業,本文主要是介紹京喜圖片庫相關優化策略以及關于圖片相關的一些關聯知識。 ......

    uj5u.com 2023-05-12 10:42:54 more
  • 鯨鴻動能廣告接入如何高效變現流量?

    廣告是App開發者最常用的流量變現方法之一,當App擁有一定數量用戶時,開發者就需要考慮如何進行流量變現,幫助App實作商業可持續增長。 鯨鴻動能流量變現服務是廣告服務依托華為終端強大的平臺與資料能力為開發者提供的App流量變現服務,開發者通過該服務可以在自己的App中獲取并向用戶展示精美的、高價值 ......

    uj5u.com 2023-05-12 10:42:17 more
  • 京喜APP - 圖片庫優化

    京喜APP早期開發主要是快速原生化迭代替代原有H5,提高用戶體驗,在這期間也積累了不少性能問題。之后我們開始進行一些性能優化相關的作業,本文主要是介紹京喜圖片庫相關優化策略以及關于圖片相關的一些關聯知識。 ......

    uj5u.com 2023-05-12 10:41:55 more
  • 跑步課程匯入能力,助力科學訓練

    HUAWEI Health Kit為開發者提供用戶自定義的跑步課程匯入介面,便于用戶在華為運動健康App和華為智能穿戴設備上查看來自生態應用的訓練課表,開啟科學、適度的運動訓練。 跑步課程匯入能力支持生態應用在獲取用戶的華為帳號授權后,將跑步課程資料寫入至華為運動健康App,并在已有的華為智能穿戴設 ......

    uj5u.com 2023-05-12 10:41:36 more
  • 鯨鴻動能廣告接入如何高效變現流量?

    廣告是App開發者最常用的流量變現方法之一,當App擁有一定數量用戶時,開發者就需要考慮如何進行流量變現,幫助App實作商業可持續增長。 鯨鴻動能流量變現服務是廣告服務依托華為終端強大的平臺與資料能力為開發者提供的App流量變現服務,開發者通過該服務可以在自己的App中獲取并向用戶展示精美的、高價值 ......

    uj5u.com 2023-05-12 10:40:52 more
  • 一統天下 flutter - 插件: flutter 使用 web 原生控制元件,并做資

    原始碼 https://github.com/webabcd/flutter_demo 作者 webabcd 一統天下 flutter - 插件: flutter 使用 web 原生控制元件,并做資料通信 示例如下: lib\plugin\plugin2.dart /* * 插件 * 本例用于演示 flu ......

    uj5u.com 2023-05-11 08:43:32 more
  • 汽車之家Unity前端通用架構升級實踐

    隨著之家3D虛擬化需求的增加,各產品線使用Unity引擎的專案也越來越多,新老專案共存,代碼維護成本也隨之增加。代碼質量參差加之代碼規范仍沒有完全統一產生高昂學習成本進一步加重了專案維護負擔。
    為應對這些問題,我們決定借助主機廠數科產品線銷冠神器VR版本大升級為貧訓,開發一套移動端通用Unity代碼... ......

    uj5u.com 2023-05-10 10:01:15 more
  • 京東小程式折疊屏適配探索

    京東小程式近年來支持了越來越多的業務和應用,做好小程式的折疊屏的適配也是符合未來的發展趨勢,能為用戶和業務方提供更好的體驗和價值。 ......

    uj5u.com 2023-05-09 08:27:55 more