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