概要
2022年9月15日にStable channelとなったAndroid Studio Dolphinからは、Logcatの機能が刷新されました。いくつか新しくなった機能がありますが、その中でもログの検索がKey-Value方式になったことが最も大きな変更点ではないでしょうか。
ところが、以下の公式ドキュメントには代表的な使い方しか書かれておらず、私は最初かなり戸惑いました。そこで改めてKey-Value検索で出来ることを整理し、まとめてみました。
Android Studio Dolphin : 新しいLogcat

使用可能なKey
ドキュメントに記載のもの以外も含めると、Android Studioのサジェストから確認できるKeyは全部で6種類あります。
| Key名 | 使用例 | 説明 |
|---|---|---|
| package | package:system_process | パッケージIDを指定できる(※1) |
| tag | tag:ActivityManager | タグを指定できる |
| level | level:INFO | ログレベルを指定できる(※2) |
| message | message:error | メッセージをフィルタリングするワードを指定できる |
| age | age:3d / age:2h | 最新のxx日分やxx時間分のみ表示させるための値を指定できる |
| line | ??? | これだけ使い方が不明 |
※1: 自分のアプリは package:mine で指定できる。
※2: 指定可能なレベルは VERBOSE, INFO, ASSERT, DEBUG, WARN, ERROR のいづれか。
Valueの使い方
Valueは値を指定する以外にも、特定の値を除外したり正規表現を使ったりすることも可能です。
特定の値の除外
Keyの前に - を付けて値を指定すると除外したログを表示できます。
例)-tag:System : Systemのタグ以外を表示

正規表現を使った検索
Keyの後に ~ を付けるとValueに正規表現を使えます。
例) package~:^com\.android : パッケージIDがcom.androidで始まるログを表示

検索条件の組み合わせ
丸括弧と論理演算子を使って検索条件を指定することもできます。
例) (message:error | level:ERROR) : メッセージにerrorが入っているかERRORレベルのログを表示

ちなみに同じ条件でもKey-Valueを並べるだけだとAND条件になってしまいます。

検索条件の保存
検索クエリは履歴に残りますが、星アイコンをクリックすることで保存することもできます。

まとめ
- Key-Value形式でログのフィルタリングができるようになった
- 引き続き正規表現を使ってのフィルタリングはサポートしている
- Key-Valueの組み合わせもある程度可能
慣れると以前のLogcatよりも、フィルタリングしやすくなったように感じます。line の使い方が分からなかったのが残念です。ご存じの方は、ぜひコメントで教えてください。