xref: /aosp_15_r20/external/perfetto/docs/data-sources/android-log.md (revision 6dbdd20afdafa5e3ca9b8809fa73465d530080dc)
1*6dbdd20aSAndroid Build Coastguard Worker# Android Log
2*6dbdd20aSAndroid Build Coastguard Worker
3*6dbdd20aSAndroid Build Coastguard Worker_This data source is supported only on Android userdebug builds._
4*6dbdd20aSAndroid Build Coastguard Worker
5*6dbdd20aSAndroid Build Coastguard WorkerThe "android.log" data source records log events from the Android log
6*6dbdd20aSAndroid Build Coastguard Workerdaemon (`logd`). These are the same log messages that are available via
7*6dbdd20aSAndroid Build Coastguard Worker`adb logcat`.
8*6dbdd20aSAndroid Build Coastguard Worker
9*6dbdd20aSAndroid Build Coastguard WorkerBoth textual events and binary-formatted events from the [EventLog] are
10*6dbdd20aSAndroid Build Coastguard Workersupported.
11*6dbdd20aSAndroid Build Coastguard Worker
12*6dbdd20aSAndroid Build Coastguard WorkerThis allows you to see log events time-synced with the rest of the trace. When recording
13*6dbdd20aSAndroid Build Coastguard Worker[long traces](/docs/concepts/config#long-traces), it allows you to record event
14*6dbdd20aSAndroid Build Coastguard Workerlogs indefinitely, regardless of the Android log daemon buffer size
15*6dbdd20aSAndroid Build Coastguard Worker(i.e. log events are periodically fetched and copied into the trace buffer).
16*6dbdd20aSAndroid Build Coastguard Worker
17*6dbdd20aSAndroid Build Coastguard WorkerThe data source can be configured to filter event from specific log buffers and
18*6dbdd20aSAndroid Build Coastguard Workerkeep only the events matching specific tags or priority.
19*6dbdd20aSAndroid Build Coastguard Worker
20*6dbdd20aSAndroid Build Coastguard Worker[EventLog]: https://developer.android.com/reference/android/util/EventLog
21*6dbdd20aSAndroid Build Coastguard Worker
22*6dbdd20aSAndroid Build Coastguard Worker### UI
23*6dbdd20aSAndroid Build Coastguard Worker
24*6dbdd20aSAndroid Build Coastguard WorkerAt the UI level, log events are showed in two widgets:
25*6dbdd20aSAndroid Build Coastguard Worker
26*6dbdd20aSAndroid Build Coastguard Worker1. A summary track that allows to quickly glance at the distribution of events
27*6dbdd20aSAndroid Build Coastguard Worker   and their severity on the timeline.
28*6dbdd20aSAndroid Build Coastguard Worker
29*6dbdd20aSAndroid Build Coastguard Worker2. A table, time-synced with the viewport, that allows to see events within the
30*6dbdd20aSAndroid Build Coastguard Worker   selected time range.
31*6dbdd20aSAndroid Build Coastguard Worker
32*6dbdd20aSAndroid Build Coastguard Worker![](/docs/images/android_logs.png "Android logs in the UI")
33*6dbdd20aSAndroid Build Coastguard Worker
34*6dbdd20aSAndroid Build Coastguard Worker### SQL
35*6dbdd20aSAndroid Build Coastguard Worker
36*6dbdd20aSAndroid Build Coastguard Worker```sql
37*6dbdd20aSAndroid Build Coastguard Workerselect l.ts, t.tid, p.pid, p.name as process, l.prio, l.tag, l.msg
38*6dbdd20aSAndroid Build Coastguard Workerfrom android_logs as l left join thread as t using(utid) left join process as p using(upid)
39*6dbdd20aSAndroid Build Coastguard Worker```
40*6dbdd20aSAndroid Build Coastguard Workerts | tid | pid | process | prio | tag | msg
41*6dbdd20aSAndroid Build Coastguard Worker---|-----|-----|---------|------|-----|----
42*6dbdd20aSAndroid Build Coastguard Worker291474737298264 | 29128 | 29128 | traced_probes | 4 | perfetto | probes_producer.cc:231 Ftrace setup (target_buf=1)
43*6dbdd20aSAndroid Build Coastguard Worker291474852699265 | 625 | 625 | surfaceflinger | 3 | SurfaceFlinger | Finished setting power mode 1 on display 0
44*6dbdd20aSAndroid Build Coastguard Worker291474853274109 | 1818 | 1228 | system_server | 3 | SurfaceControl | Excessive delay in setPowerMode()
45*6dbdd20aSAndroid Build Coastguard Worker291474882474841 | 1292 | 1228 | system_server | 4 | DisplayPowerController | Unblocked screen on after 242 ms
46*6dbdd20aSAndroid Build Coastguard Worker291474918246615 | 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
47*6dbdd20aSAndroid Build Coastguard Worker
48*6dbdd20aSAndroid Build Coastguard Worker### TraceConfig
49*6dbdd20aSAndroid Build Coastguard Worker
50*6dbdd20aSAndroid Build Coastguard WorkerTrace proto:
51*6dbdd20aSAndroid Build Coastguard Worker[AndroidLogPacket](/docs/reference/trace-packet-proto.autogen#AndroidLogPacket)
52*6dbdd20aSAndroid Build Coastguard Worker
53*6dbdd20aSAndroid Build Coastguard WorkerConfig proto:
54*6dbdd20aSAndroid Build Coastguard Worker[AndroidLogConfig](/docs/reference/trace-config-proto.autogen#AndroidLogConfig)
55*6dbdd20aSAndroid Build Coastguard Worker
56*6dbdd20aSAndroid Build Coastguard WorkerSample config:
57*6dbdd20aSAndroid Build Coastguard Worker
58*6dbdd20aSAndroid Build Coastguard Worker```protobuf
59*6dbdd20aSAndroid Build Coastguard Workerdata_sources: {
60*6dbdd20aSAndroid Build Coastguard Worker    config {
61*6dbdd20aSAndroid Build Coastguard Worker        name: "android.log"
62*6dbdd20aSAndroid Build Coastguard Worker        android_log_config {
63*6dbdd20aSAndroid Build Coastguard Worker            min_prio: PRIO_VERBOSE
64*6dbdd20aSAndroid Build Coastguard Worker            filter_tags: "perfetto"
65*6dbdd20aSAndroid Build Coastguard Worker            filter_tags: "my_tag_2"
66*6dbdd20aSAndroid Build Coastguard Worker            log_ids: LID_DEFAULT
67*6dbdd20aSAndroid Build Coastguard Worker            log_ids: LID_RADIO
68*6dbdd20aSAndroid Build Coastguard Worker            log_ids: LID_EVENTS
69*6dbdd20aSAndroid Build Coastguard Worker            log_ids: LID_SYSTEM
70*6dbdd20aSAndroid Build Coastguard Worker            log_ids: LID_CRASH
71*6dbdd20aSAndroid Build Coastguard Worker            log_ids: LID_KERNEL
72*6dbdd20aSAndroid Build Coastguard Worker        }
73*6dbdd20aSAndroid Build Coastguard Worker    }
74*6dbdd20aSAndroid Build Coastguard Worker}
75*6dbdd20aSAndroid Build Coastguard Worker```
76