日志的级别
- V — 明细 verbose(最低优先级)
- D — 调试 debug
- I — 信息 info
- W — 警告 warn
- E — 错误 error
- F — 严重错误 fatal
- S — 无记载 silent(最高优先级,绝不会输出任何内容)
adb 命令查看日志
- adb logcat
-
查看日志常用的参数 1
日志过滤:
adb logcat --help
adb logcat [TAG:LEVEL ] [TAG:LEVEL ] ...
查看日志常用的参数2
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及以上级别的日志
*:S静默模式
在使用adb logcat命令时,"*:S"是一个过滤器,用于指定哪些消息应该被显示或隐藏。在这种情况下,"*:S"指示将所有标签的输出级别设置为"silent"(S),这意味着将隐藏所有消息,除了指定的标签。具体来说: - ActivityManager:D 表示将ActivityManager标签的输出级别设置为调试(D),这将显示ActivityManager相关的调试消息。 - '*:S' 表示将除了ActivityManager标签之外的所有其他标签的输出级别设置为silent(S),这意味着隐藏所有其他消息。 因此,这个命令将显示ActivityManager标签的调试消息,并在屏幕上隐藏其他所有标签的消息。这在调试特定组件时非常有用,因为它可以帮助您聚焦在您关心的消息上,同时减少不必要的输出。
常见问题
- 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)