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时间,需要转换成标准时间。
例如:com_test_app@1583313946748.txt,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