跳转到内容

实时日志

设备写的东西很多。实时日志是这条流,加上让它变得可读的那几个过滤器。

  1. 选中设备。
  2. 打开实时日志。
  3. 可以把范围收到某个 App,然后在设备上操作它。

输出边写边出现。手机上没有开关要开,你的包里也不用加任何东西。

三种过滤,通常需要组合使用:

  • 按应用。 收窄到一个进程。从这里开始。
  • 按关键字。 整行子串匹配。你自己的日志前缀,是这个输入框里最有价值的东西。
  • 按进程。 比“按应用”更宽 —— 适合追一个正在抱怨你的 App 的系统守护进程,而不是 App 本身。

系统日志量很大,大部分噪音你会学会忽略。但有几类不是:

日志 值不值得读
内存压力警告 值得 —— 常常是被 jetsam 杀掉前的最后一句话
看门狗 / 卡死报告 值得 —— 主线程被阻塞到系统都注意到了
网络可达性变化 追间歇性失败的请求时值得
布局约束冲突 值得,而且通常是你自己的问题
守护进程的日常絮叨 不值得

保存写出的是当前视图的内容 —— 过滤条件也生效,所以存下来的是过滤后的日志而不是原始洪流。这通常正是你想附到工单上的东西,但记得在工单里说明是哪个过滤条件产出的。

对可复现的故障,有用的采法是:清空 → 复现 → 停止 → 保存。一个从十分钟前开始的文件,下一个人读起来会痛苦得多。

实时日志显示的是 App 选择说出来的东西。App 什么都没说的时候(卡死了,或者直接消失了),日志会在没有任何交代的地方结束。两条后续线索:

  • 突然中断且没有异常信息,通常意味着进程被杀了。去性能采集里看内存;内存爬升后被 jetsam 杀掉,长的就是这个样子。
  • 崩溃即使一句日志都没打,也会写一份报告。见崩溃日志。

崩溃日志 · 性能监控 · 帧率与卡顿