logcatは端末のログを表示するサブコマンドである。引数なしで実行するとすべてのログが表示され続けるため、タグや優先度による絞り込みを併用することが多い。
タグでフィルタする
<タグ>:<優先度>の形式でフィルタを指定する。末尾に*:S(すべてのタグを抑制)を付けると、指定したタグ以外を表示しなくなる。
$ adb logcat MyTag:I *:S
09-23 23:12:14.237 18814 18814 I MyTag : hello from MyTag
*:Sを付けない場合、指定したタグ以外のログもV(Verbose、実質フィルタなし)で表示され続ける。
優先度でフィルタする
優先度はV(Verbose)、D(Debug)、I(Info)、W(Warn)、E(Error)、F(Fatal)、S(Silent、すべて抑制)の7段階で、指定した優先度以上のログのみが表示される。
$ adb logcat PrioTag:W *:S
09-23 23:12:15.422 18822 18822 W PrioTag : warning message
上記の例ではD(Debug)で出力したログは表示されず、W(Warn)以上のログだけが表示される。
-vで表示フォーマットを変える
-vに続けてフォーマット名を指定すると、ログの表示形式を変更できる。デフォルトはthreadtimeである。
$ adb logcat -v threadtime MyTag:I *:S
09-23 23:11:53.245 18784 18784 I MyTag : format test message
$ adb logcat -v brief MyTag:I *:S
I/MyTag (18784): format test message
$ adb logcat -v time MyTag:I *:S
09-23 23:11:53.245 I/MyTag (18784): format test message
$ adb logcat -v tag MyTag:I *:S
I/MyTag : format test message
$ adb logcat -v raw MyTag:I *:S
format test message
rawはタグやタイムスタンプを含まずメッセージ本文だけを表示する。
フォーマットに修飾子を追加する
フォーマット名の後にカンマ区切りで修飾子を追加すると、表示内容を細かく調整できる。
$ adb logcat -v time,usec MyTag:I *:S
09-23 23:11:53.245071 I/MyTag (18784): format test message
$ adb logcat -v time,uid MyTag:I *:S
09-23 23:11:53.245 I/MyTag (shell:18784): format test message
$ adb logcat -v time,year MyTag:I *:S
2026-09-23 23:11:53.245 I/MyTag (18784): format test message
usecはマイクロ秒まで、uidはプロセスIDに加えてUID(実行ユーザー)名、yearは年を表示に追加する。
\確かな知識を身に着けたい、Androidアプリ開発を学びたい人にオススメ!/
