🪵

Logcatで常駐させているタブ紹介

2023/06/21に公開

Logcatのクエリとタブ機能

Android Studio DolphinからLogcatが新しくなり、ログの検索がクエリで行えるようになりました。また、その条件を設定したタブを残すことができるようになりました。
https://developer.android.com/studio/debug/logcat?hl=ja#key-value-search

それ以前ではタブを残すことができず、例えばエラーだけのログを見たい場合、ドロップダウンからErrorレベルを選択し、通常のログに戻るという作業を繰り返すしかなかったため、タブ機能ができてとても便利になりました。

そこで、普段の開発で私が常駐させているタブを紹介したいと思います。

Logcatタブ

クエリ

package:mine

役割

自アプリが出すログを全部見る。

デフォルトで出るLogcatがこちらです。全部が出ている生値のようなものとして残しておいています。

Footprintタブ

クエリ

package:mine tag:Footprint

役割

Footprintログを見る。

ログライブラリとしてFootprintというライブラリを使っており、そのログを見るためのタブを用意しています。
開発時に仕込むデバッグログが書きやすいので重宝しています。
https://github.com/morayl/Footprint

Errorタブ

クエリ

package:mine level:error

役割

エラーログだけを見る。

以前のLogcatでクラッシュ時や、ライブラリのエラーログを見るためにエラーレベルに切り替えて使っていたので、同様の用途のタブです。

Crashタブ

クエリ

package:mine is:crash

役割

アプリクラッシュ時のログを見る。

is:crash という書き方ができることを最近知ったのでタブ化しました。クラッシュログであればErrorタブよりこちらを見るほうが便利そうです。

Analyticsタブ

クエリ

tag:FA-SVC tag:Repro

役割

アプリ分析ツールのログを見る。

FirebaseAnalyticsのログをtag:FA-SVCで、Reproのログをtag:Reproで取得しています。
FirebaseAnalyticsのログは自アプリのパッケージでなく、com.google.android.gmsが出しているので、package:mineは付けていません。

Flamingoではなかったのですが、Headgehogではis:firebaseというクエリが使えました。今後Firebase関連のログはis:firebaseを使うほうが便利かもしれません。

Fragmentタブ

クエリ

package:mine tag:FragmentManager

役割

FragmentManagerロギングのログを見る。

https://developer.android.com/guide/fragments/debugging?hl=ja#fm-logging

adb shell setprop log.tag.FragmentManager DEBUG

でFragment遷移の詳細をログに出すことができますが、ログ行数が多いのでタブに切り出しています。

Networkタブ

クエリ

package:mine tag:okhttp.OkHttpClient

役割

通信ログを見る。

通信にRetrofit2/OkHttpを使っており、デバッグビルドでは通信ログを出すようにしています。
https://github.com/square/okhttp/tree/master/okhttp-logging-interceptor
通信ログだけが見れるタブがあると便利なので、作っています。

おわりに

Logcatにタブを置いておけるようになり便利になりました。この記事では、私が開発時によく使い、常駐させているタブを紹介しました。他にも便利なLogcatタブの使い方があれば是非知りたいです。

Discussion