Skip to content

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 命令查看日志
  • 查看日志常用的参数
  • 根据条件过滤日志