Android 日誌獲取總結
Android開發中遇到問題經常需要分析日誌,下面介紹如何獲取日誌進行分析。
Android日誌:
1、如果App中已經做了定向處理,從指定的目錄中獲取即可。
定向處理指的是app中做了日誌寫入到自己指定的文件中。
2、但是如有沒有定向處理,那麼就要學會從系統中獲取到日誌。
從系統中查看日誌也有兩種方式
(1)使用adb logcat獲取日誌
adb logcat 命令詳解:https://blog.csdn.net/wenzhi20102321/article/details/81058196
adb獲取日誌可以使用cmd窗口查看,
//格式1:打印默認日誌數據
adb logcat
//格式2:需要打印日誌詳細時間的簡單數據
adb logcat -v time
//格式3:需要打印級別爲Error的信息
adb logcat *:E
//格式4:需要打印過濾MainActivity的日誌
adb logcat | grep MainActivity
//其他,清除緩存日誌
adb logcat -c
也可以把日誌文件重定向到固定的位置
//將日誌保存到電腦固定的位置,比如D:\log.txt
adb logcat -v time >D:\log.txt
直接定向獲取logcat日誌,可以讀取到緩存的日誌
如果是要獲取準備發生問題的日誌,一般先使用logcat -c清除日誌,再獲取。
當然,爲了更快獲取日誌,我們最好是寫一些簡單的腳本bat直接執行即可獲取到日誌。
logcat文件
(2)從系統指定目錄中獲取android日誌
下面日誌的獲取是需要手機root權限的,一般時候系統級開發定位問題!
Android系統完整的日誌文件目錄:/data/log/android_logs/
系統或者APP發生ANR時的log日誌文件目錄:/data/anr
C/C++代碼發生崩潰時的日誌文件目錄: /data/tombstones 存
各種APP崩潰、ANR、Android系統死機、重啓、C/C++模塊崩潰等場景的日誌文件目錄:/data/system/dropbox 存放。
dropbox目錄下的文件,其文件名中@後面的數字是問題發生時的設備的UTC時間,需要轉換成標準時間。
例如:[email protected],1583313946748這個UTC時間轉換成標準時間就是2020/3/4 17:25:48。
注意:如果設備時間不準,那麼轉換過來的時間也會不準。
下面提供一下簡單的腳本方便點擊即可獲取日誌文件
https://download.csdn.net/download/wenzhi20102321/12376556
logcat.bat
adb shell logcat -G 2m
adb logcat -v threadtime >"%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%log.txt"
pause
先清除日誌再log.bat
adb shell logcat -G 2m
adb logcat -c
adb logcat -v threadtime >"%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%log.txt"
pause
pull_android_logs.bat
adb remount
adb wait-for-device
adb devices
adb pull /data/log/android_logs/ "%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%Log"
pause
delete_android_logs.bat
adb remount
adb shell rm -rf /data/log/android_logs/
pause
pull_anr_tombs_others_log.bat
adb remount
adb wait-for-device
adb devices
adb pull /data/log/android_logs/ "%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%AndroidLog"
adb pull /data/anr "%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%anrLog"
adb pull /data/tombstones "%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%tombstonesLog"
adb pull /data/system/dropbox /data/tombstones "%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%tombstonesLog"
pause