Android Log

此数据源仅在 Android userdebug 构建上受支持。

"android.log" 数据源记录来自 Android Log 守护程序(logd)的 Log event。这些是通过 adb logcat 可用的相同 Log message。

支持来自 EventLog 的文本格式事件和二进制格式事件。

这允许你查看与 trace 的其余部分时间同步的 Log event。当采集长 trace时,它允许你无限期地采集 Event log,而不管 Android Log 守护程序缓冲区大小如何(即,Log event 定期获取并复制到 trace 缓冲区中)。

数据源可以配置为过滤来自特定 Log buffer 的事件,并仅保留匹配特定标签或优先级的事件。

UI

在 UI 级别,Log event 在两个小部件中显示:

  1. 一个摘要 track,允许快速查看事件的分布及其在 Timeline 上的严重性。

  2. 一个与视口时间同步的表格,允许在选定的时间范围内查看事件。

SQL

select l.ts, t.tid, p.pid, p.name as process, l.prio, l.tag, l.msg from android_logs as l left join thread as t using(utid) left join process as p using(upid)
ts tid pid process prio tag msg
291474737298264 29128 29128 traced_probes 4 perfetto probes_producer.cc:231 Ftrace setup (target_buf=1)
291474852699265 625 625 surfaceflinger 3 SurfaceFlinger Finished setting power mode 1 on display 0
291474853274109 1818 1228 system_server 3 SurfaceControl Excessive delay in setPowerMode()
291474882474841 1292 1228 system_server 4 DisplayPowerController Unblocked screen on after 242 ms
291474918246615 1279 1228 system_server 4 am_pss Pid=28568 UID=10194 Process Name="com.google.android.apps.fitness" Pss=12077056 Uss=10723328 SwapPss=183296 Rss=55021568 StatType=0 ProcState=18 TimeToCollect=51

TraceConfig

Trace proto: AndroidLogPacket

Config proto: AndroidLogConfig

示例配置:

data_sources: { config { name: "android.log" android_log_config { min_prio: PRIO_VERBOSE filter_tags: "perfetto" filter_tags: "my_tag_2" log_ids: LID_DEFAULT log_ids: LID_RADIO log_ids: LID_EVENTS log_ids: LID_SYSTEM log_ids: LID_CRASH log_ids: LID_KERNEL } } }