概要
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
の使い方が分からなかったのが残念です。ご存じの方は、ぜひコメントで教えてください。