adb日志操作
adb 日志操作
简介
adb logcat
是 Android Debug Bridge(ADB)命令的一部分,用于查看 Android 设备上的实时系统和应用程序日志。这个命令允许开发者实时监控设备的日志输出,以便调试、分析应用程序行为、查找错误以及进行性能优化。
日志的级别
- V — 明细 verbose(最低优先级)
- D — 调试 debug
- I — 信息 info
- W — 警告 warn
- E — 错误 error
- F — 严重错误 fatal
- S — 无记载 silent(最高优先级,绝不会输出任何内容)
adb 命令查看日志
adb logcat --help
adb logcat [TAG:LEVEL ] [TAG:LEVEL ] ...
adb logcat 打印默认日志数据
adb logcat -v time 打印时间
adb logcat -v color 使用不同的颜色来显示每个优先级
adb logcat -f <filename> 将日志输出到文件
adb logcat > log.log 保存日志到PC上
adb logcat -c 清理已存在的日志
根据条件过滤日志
adb logcat -v time "*:W" 打印 Warning 及以上级别的日志
adb logcat ActivityManager:D '*:S' 过滤tag 为ActivityManager,level为Debug及以上级别的日志
常见问题
- https://developer.android.com/topic/performance/vitals/crash
FATAL EXCEPTION: main 12-09 09:20:14.689: E/AndroidRuntime(31223): java.lang.IllegalStateException: Activity has been destroyed 12-09 09:20:14.689: E/AndroidRuntime(31223): at android.support.v4.app.FragmentManagerImpl.enqueueAction(FragmentManager.java:1365) 12-09 09:20:14.689: E/AndroidRuntime(31223): at android.support.v4.app.BackStackRecord.commitInternal(BackStackRecord.java:595) 12-09 09:20:14.689: E/AndroidRuntime(31223): at android.support.v4.app.BackStackRecord.commit(BackStackRecord.java:574) 12-09 09:20:14.689: E/AndroidRuntime(31223): at cn.com.topsky.community.tfd.DongTaiFragment.init(DongTaiFragment.java:209) 12-09 09:20:14.689: E/AndroidRuntime(31223): at cn.com.topsky.community.tfd.DongTaiFragment.onCreateView(DongTaiFragment.java:68) 12-09 09:20:14.689: E/AndroidRuntime(31223): at android.support.v4.app.Fragment.performCreateView(Fragment.java:1500) 12-09 09:20:14.689: E/AndroidRuntime(31223): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:927) 12-09 09:20:14.689: E/AndroidRuntime(31223): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1104) 12-09 09:20:14.689: E/AndroidRuntime(31223): at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:682) 12-09 09:20:14.689: E/AndroidRuntime(31223): at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1467) 12-09 09:20:14.689: E/AndroidRuntime(31223): at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:440) 12-09 09:20:14.689: E/AndroidRuntime(31223): at android.os.Handler.handleCallback(Handler.java:605) 12-09 09:20:14.689: E/AndroidRuntime(31223): at android.os.Handler.dispatchMessage(Handler.java:92) 12-09 09:20:14.689: E/AndroidRuntime(31223): at android.os.Looper.loop(Looper.java:154) 12-09 09:20:14.689: E/AndroidRuntime(31223): at android.app.ActivityThread.main(ActivityThread.java:4624) 12-09 09:20:14.689: E/AndroidRuntime(31223): at java.lang.reflect.Method.invokeNative(Native Method) 12-09 09:20:14.689: E/AndroidRuntime(31223): at java.lang.reflect.Method.invoke(Method.java:511) 12-09 09:20:14.689: E/AndroidRuntime(31223): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:809) 12-09 09:20:14.689: E/AndroidRuntime(31223): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:576) 12-09 09:20:14.689: E/AndroidRuntime(31223): at dalvik.system.NativeStart.main(Native Method)
总结
- 日志的级别
- adb 命令查看日志
- 查看日志常用的参数
- 根据条件过滤日志