Android日誌信息過濾方法及系統的製作方法
2023-06-10 18:25:31 2
Android日誌信息過濾方法及系統的製作方法
【專利摘要】本發明涉及日誌技術,提供一種Android日誌信息過濾方法及系統。該方法包括:修改系統各層原始日誌信息使其具備自定義格式,過濾日誌信息,該自定義格式包括關鍵字層名稱、模塊名稱、函數方法名稱及狀態信息。該系統包括:用於修改系統各層原始日誌信息使其具備自定義格式的日誌自定義模塊、及用於過濾日誌信息的日誌過濾模塊。本發明通過修改系統各層原始日誌信息,使其具備包括關鍵字層名稱、模塊名稱、函數方法名稱及狀態信息的自定義格式,從而實現對日誌信息更為精確的過濾,減少了開發及測試人員的工作量,提高了工作效率。
【專利說明】Android日誌信息過濾方法及系統
【技術領域】
[0001]本發明涉及日誌技術,尤其涉及Android日誌信息過濾方法及系統。
【背景技術】
[0002]系統日誌用於記錄系統中各硬體、軟體所發生的事件,及運行過程中的異常信息。在系統測試過程中,開發及測試人員可利用上述日誌信息查找異常,為系統進行排錯,以達到不斷優化系統性能的目的。但是由於系統日誌不僅包含異常信息,還包含了正確的調試信息,信息量巨大,因此常常需要藉助工具以提高效率。
[0003]對於Android系統,通常採用adblogcat命令,輸出或保存日誌在文件中,通過參數設置,過濾出特定的日誌信息。
[0004]儘管adblogcat命令具備過濾日誌信息的功能,但一方面,由於日誌格式中僅包括模塊名稱和模塊的日誌級別(包括錯誤級別、調試級別、警告級別、及詳細信息級別),因此,在對日誌信息進行過濾時,只能使用模塊名稱或日誌級別限定日誌的輸出結果,過濾方式有限,過濾出的結果不夠精確,常常需要進一步手動篩選以獲取所需的結果;同時,日誌信息中並未提供對應的代碼位置,存在定位含糊問題,要通過過濾出的異常信息準確找到代碼中異常出現的位置,需要花費大量的時間和精力,效率低下。
[0005]另一方面,adblogcat命令默認只能列印Linux內核日誌之外的系統日誌,而對於Linux內核日誌,貝U需要通過Linux內核中提供的dmesg命令來進行列印。也就是說對於系統不同層日誌的列印,需要分開處理,無形中增加了人工搜索查找日誌的工作量。同時由於dmesg命令不支持過濾功能,因此要在Linux內核日誌中查找需要的信息只能通過人工搜索查找的方式,效率低下。
【發明內容】
[0006]本發明要解決的技術問題是:提供一種Android日誌信息過濾方法及系統,能夠對日誌信息進行更精細的過濾,得到更為精確的結果。
[0007]本發明進一步要解決的技術問題是:該方法及系統能夠通過異常信息準確定位代碼中出現異常的位置。
[0008]本發明還要進一步解決的技術問題是:該方法及系統能夠實現對系統不同層日誌
信息的統一管理。
[0009]為解決上述技術問題,本發明提供一種Android日誌信息的過濾方法,包括:
[0010]修改系統各層原始日誌信息,使其具備自定義格式;
[0011]過濾日誌信息;
[0012]所述自定義格式包括關鍵字層名稱、模塊名稱、函數方法名稱及狀態信息。
[0013]進一步地,所述自定義格式還包括關鍵字文件名稱及函數方法所對應的行號。
[0014]進一步地,所述過濾日誌信息的步驟包括:
[0015]設置日誌配置信息;[0016]捕獲日誌信息;
[0017]將捕獲的日誌信息與配置信息進行匹配;
[0018]對符合匹配條件的結果進行記錄。
[0019]進一步地,所述設置日誌配置信息的步驟包括對關鍵字層名稱、模塊名稱、函數方法名稱及狀態信息進行設置。
[0020]進一步地,所述捕獲日誌信息的步驟包括:對經dmesg命令列印輸出的Linux內核日誌、以及經adblogcat命令列印輸出的其他系統日誌進行抓取。
[0021]進一步地,該方法還包括:
[0022]設置一用於使日誌信息在原始格式與自定義格式之間切換的格式切換開關。
[0023]本發明同時提供一種Android日誌信息的過濾系統,包括:
[0024]用於修改系統各層原始日誌信息,使其具備自定義格式的日誌自定義模塊;
[0025]及用於過濾日誌信息的日誌過濾模塊。
[0026]進一步地,所述日誌過濾模塊包括:
[0027]用於設置日誌配置信息的日誌配置模塊;
[0028]用於捕獲日誌信息的日誌捕獲模塊;
[0029]用於對捕獲的日誌信息與日誌配置信息進行匹配的日誌匹配模塊;
[0030]及用於對符合匹配條件的結果進行記錄的日誌記錄模塊。
[0031]進一步地,所述日誌捕獲模塊集成有dmesg及adblogcat命令。
[0032]進一步地,該系統還包括用於使日誌信息在原始格式與自定義格式之間切換的格式切換開關。
[0033]與現有技術相比,本發明通過修改系統各層原始日誌信息,使其具備包括關鍵字層名稱、模塊名稱、函數方法名稱及狀態信息的自定義格式,從而實現對日誌信息更精細的過濾,得到更為精確的結果,減少了開發及測試人員的工作量;通過日誌信息中所包含的函數方法所對應的行號,可精確查找到代碼中出現異常的位置,從而提高了開發及測試人員的工作效率;通過集成dmesg、adblogcat命令實現對系統不同層日誌信息的統一管理。
【專利附圖】
【附圖說明】
[0034]圖1是本發明日誌信息過濾系統的示意圖;
[0035]圖2是本發明日誌匹配模塊工作流程示意圖;
[0036]圖3是本發明日誌信息過濾方法的流程示意圖。
【具體實施方式】
[0037]下面結合說明書附圖和【具體實施方式】對本發明作進一步的描述。
[0038]如圖1所示,本發明的日誌信息過濾系統包括:用於修改系統各層原始日誌信息,使其具備自定義格式的日誌自定義模塊1、及用於過濾日誌信息的日誌過濾模塊2。
[0039]首先針對現有過濾方式有限、過濾結果不夠精確的問題,對各層中原始日誌信息進行修改,自定義系統各層日誌格式,使日誌信息包含層名稱、模塊名稱、文件名稱、函數方法名稱、函數方法所對應的行號、及狀態信息等關鍵字,其中層名稱包括從最底層至最上層的內核層、hal層、jninative層及java層,狀態彳H息包括正確、錯及警告狀態。對日誌?η息進行過濾時,通過其所包含的關鍵字層名稱、模塊名稱、函數方法名稱及狀態信息,即可得到包含特定關鍵字的信息;例如想要得到系統測試所需某特定模塊中某特定函數的異常信息,則可以通過設置層名稱為該模塊所處的層、設置模塊名稱為該特定模塊名稱、設置函數方法名稱為該特定函數名稱、以及設置狀態信息為錯誤狀態,對日誌信息進行過濾;由於日誌格式細化至模塊名稱及函數方法名稱,因此該種方式過濾的結果較現有過濾方式過濾的結果更為精確。進一步地,通過日誌信息所包含的關鍵字文件名稱及函數方法所對應的行號,即可確定代碼中出現異常的準確位置,而不再需要手動查找,提高了工作效率。
[0040]在自定義日誌格式的過程中,還設置了 一個用於使日誌信息在原始格式與自定義格式之間切換的格式切換開關,以保證在需要的時候能夠調用原始格式的日誌信息。其具體實現是通過設置一個指定的配置參數,例如,當設置該參數為true時,輸出原始日誌,否則過濾日誌。
[0041 ] 經自定義格式後的日誌信息作為日誌過濾模塊2的輸入,由其對日誌信息進行統一管理。如圖1所示,日誌過濾模塊2包括:用於設置日誌配置信息的日誌配置模塊3、用於捕獲日誌信息的日誌捕獲模塊4、用於對捕獲的日誌信息與配置信息進行匹配的日誌匹配模塊5、用於對符合匹配條件的結果進行記錄的日誌記錄模塊6、及用於輸出所記錄日誌信息的日誌輸出模塊7。
[0042]日誌配置模塊3對日誌配置信息進行設置,亦即對所需要特定日誌信息的關鍵字層名稱、模塊名稱、函數方法名稱及狀態信息進行設置,例如需要查找hal層的異常日誌信息,則設置日誌層名稱為hal層、設置日誌狀態信息為錯誤狀態。
[0043]日誌捕獲模塊4集成了 dmesg命令及adblogcat命令,對經dmesg命令列印輸出的Linux內核日誌、以及經adblogcat命令列印輸出的其他系統日誌進行抓取。
[0044]日誌匹配模塊5根據日誌配置模塊3中所設置的配置信息,對日誌捕獲模塊4所捕獲的日誌信息逐條逐級進行匹配。其具體匹配過程如圖2所示,讀取一條日誌信息,根據配置信息對該日誌信息進行層匹配,即將該條日誌信息的層名稱與配置信息中的層名稱進行對比;如果層名稱匹配,則繼續進行模塊匹配,否則返回讀取下一條日誌信息;如果日誌配置模塊3中未對層名稱進行設置,則無需進行層匹配,直接進行模塊匹配。以此類推,直至依照層、模塊、函數方法、及狀態信息的順序對該條日誌信息逐級匹配完畢,如果該條日誌的各關鍵字均與配置信息匹配,則通過日誌記錄模塊6對其進行記錄,並通過日誌輸出模塊7通知用戶。通過以上匹配過程,開發及測試人員即可過濾出包含特定層和模塊,甚至特定方法和狀態的日誌信息,之後根據日誌信息中所包含的關鍵字文件及函數方法所對應的行號,即可精確查找到代碼中出現異常的位置,提高了的工作效率。
[0045]參考圖3,為本發明日誌信息過濾方法的流程圖,包括以下步驟:
[0046]SlOl,修改系統各層原始日誌信息,使其具備自定義格式,其中自定義格式包括關鍵字:層名稱、模塊名稱、函數方法名稱、及狀態信息,以實現對日誌信息更精確的過濾;該自定義格式還可以進一步包括關鍵字文件名稱及函數方法所對應的行號,以便確定代碼中出現異常的準確位置。
[0047]S102,設置日誌配置信息;
[0048]S103,捕獲日誌信息;
[0049]S104,將捕獲的日誌信息與配置信息進行匹配; [0050] S105,對符合匹配條件的結果進行記錄。
【權利要求】
1.一種Android日誌信息的過濾方法,其特徵在於,包括: 修改系統各層原始日誌信息,使其具備自定義格式; 過濾日誌信息; 所述自定義格式包括關鍵字層名稱、模塊名稱、函數方法名稱及狀態信息。
2.根據權利要求1所述的方法,其特徵在於,所述自定義格式還包括關鍵字文件名稱及函數方法所對應的行號。
3.根據權利要求1或2所述的方法,其特徵在於,所述過濾日誌信息的步驟包括: 設置日誌配置信息; 捕獲日誌信息; 將捕獲的日誌信息與配置信息進行匹配; 對符合匹配條件的結果進行記錄。
4.根據權利要求3所述的方法,其特徵在於,所述設置日誌配置信息的步驟包括對關鍵字層名稱、模塊名稱、函數方法名稱及狀態信息進行設置。
5.根據權利要求3所述的方法,其特徵在於,所述捕獲日誌信息的步驟包括:對經dmesg命令列印輸出的Linux內核日誌、以及經adblogcat命令列印輸出的其他系統日誌進行抓取。
6.根據權利要求1或2所述的方法,其特徵在於,該方法還包括: 設置一用於使日誌信息在原始格式與自定義格式之間切換的格式切換開關。
7.—種Android日誌信息的過濾系統,其特徵在於,包括: 用於修改系統各層原始日誌信息,使其具備自定義格式的日誌自定義模塊; 及用於過濾日誌信息的日誌過濾模塊。
8.根據權利要求7所述的系統,其特徵在於,所述日誌過濾模塊包括: 用於設置日誌配置信息的日誌配置模塊; 用於捕獲日誌信息的日誌捕獲模塊; 用於對捕獲的日誌信息與日誌配置信息進行匹配的日誌匹配模塊; 及用於對符合匹配條件的結果進行記錄的日誌記錄模塊。
9.根據權利要求8所述的系統,其特徵在於,所述日誌捕獲模塊集成有dmesg及adblogcat 命令。
10.根據權利要求7或8或9所述的系統,其特徵在於,該系統還包括用於使日誌信息在原始格式與自定義格式之間切換的格式切換開關。
【文檔編號】H04L12/24GK103944761SQ201410157526
【公開日】2014年7月23日 申請日期:2014年4月18日 優先權日:2014年4月18日
【發明者】羅克炬 申請人:深圳芯智匯科技有限公司