logcat日志文件


android日志系統提供了記錄和查看系統調試信息的功能,日志都是從各個軟件和一些系統的緩沖區中記錄下來的,緩沖區可以通過logcat命令來進行查看和使用

開發者選項,有個選項叫做“日志記錄器緩沖區大小”,默認是256K,日志是循環寫入環形緩沖區的,在通常情況下,寫滿時最舊的日志會被刪除已給新輸出的日志留內存空間

1.緩沖區的類型
Android 日志系統為日志消息保留了多個循環緩沖區,不是所有的消息都被發送到默認緩沖區,要想查看這些附加的緩沖區,可以使用 -b選項,查看指定的緩沖區:

adb logcat [-b <buffer>]
buffer可以有如下選項:

    • Radio 參數可以抓取Android RIL層 ,查看log包含在通信系統的log,如藍牙、wifi、打印.、網卡、3G、4G    命令:adb logcat -b radio
    • Events 查看事件相關的消息,比如啟動應用,停止文件 事件.
    • Main 查看主緩沖區、所有Java層的log(默認緩沖區).
    • System 輸出系統組件的log(默認緩沖區).

ps:默認使用 【adb logcat】會輸出Main及System緩沖區的log信息。

加參數-v  time 可以顯示每天記錄的詳細時間,如  adb logcat -b system -v time > D:\log.system.txt

2.認識輸出日志信息

輸出的日志信息格式如下圖所示:

1)日志內容由五部分組成

大概就是顯示:時間 、進程Id=1164、 線程Id=1181、優先級=D、標簽(tag)=WindowManger : message

    1. 寫下日志時的時間,如:08-11 09:45:35.209
    2. 優先級:日志的優先級從小到大為

V-Verbose(啰嗦,最低級別,開發調試時的一些詳細信息,僅在開發中使用,不可在發布產品中輸出)

D-Debug(調試,用於調試的信息,可以在發布產品中關閉,比較常見)

I-information(信息,一般提示性的消息)

W-warning(警告)

E-Error (錯誤,已經出現可影響運行的錯誤,比如應用crash時輸出的日志)

S(無記載)

 3.標簽(tag),表明日志發起者和方便日志的過濾篩選,如上圖中的SystemServer

4.PID(進程ID),如上圖中的1760

5.正文,本日志的主體部分

2)過濾日志

如果要減少logcat 的輸出日志,可以使用如上條件進行過濾、可用多個表達一起限制

過濾表達式的格式為:tag:prority (因為同一個tag可以有不同的優先級) 

           如:adb logcat ActivityManager:I MyApp:D *:S   

                   備注1:僅用於輸出標記為“ActivityManager”且優先級大於等於"I"和標記為“MyApp”,優先級大於等於"Debug"的日志。 

                   備注2:*:S是用於設置ActivityManager:I MyApp:D輸出的日志再次過濾 ,標記這些日志的優先級為S(即只輸入ActivityManager:I MyApp:D日志,其他的不輸出) 

                   備注3:一般都會在過濾后加上*:S以輸出符合指令的日志

adb logcat *:W  // "*"是指所有的tag, "*:W"是指輸出所有的優先級為W以上的所有tag日志信息 

可通過包名來過濾日志,

將程序運行在前台,通過命令查看應用包名稱:adb shell dumpsys | findstr "mFocusedActivity"

3)分析日志異常情況

發生 crash 問題,搜索關鍵字 force finishing  (往上找日志:FATAL EXCEPTION—Force finish)

ANR(Application not responding)應用無響應,當應用操作一段時間內系統無法處理時,系統會彈出無響應的對話框。具體可以產看traces.txt文件,進行分析。

traces.txt文件是一個ANR記錄文件,用於開發人員調試,目錄位於/data/anr中
,無需root權限即可通過pull命令獲取,下面的命令可以將traces.txt文件拷貝到當前目錄下

通過ANR in 過濾數據 從上往下找數據

ANR需要提交的日志文件:logcat(從ANR in 開始+cpu使用之后)+Trace.txt(保存的是最后一次anr 的信息)

出現多次anr:將dropbox 下的data_app_anr 直接給開發人員

通過dropbox 收集一段時間內的異常信息(包括ANR)

/data/system/dropbox  

Data_app 是第三方的app

App 發生異常

l  首先判斷是崩潰還是無響應anr(根據對話框進行)

l  Adb logcat抓取日志文件 如果是ANR 取dropbox下面的data_app_anr

l  復現場景 復現步驟復現環境

     

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM