PCに接続できない環境でもLogcatのログを取得したい時に使えるアプリ「Logcat Recorder」の紹介


背景

Androidアプリのテストで、Logcatに出力されたログを収集したい時、方法として

  • Android StudioのLogcatを利用する
  • 端末とPCをUSB接続するなどしておき、adb logcat -v time > log.txtコマンドを叩いておく

があると思います。
ですが、耐久試験で1日以上放置しないといけなかったり、PCの環境に不安がある場合に、上記の方法だとどうしても難しい場合もあります。
そんな時に使えるアプリ「Logcat Recorder」を紹介したいと思います。

アプリの概要

https://apkpure.com/jp/logcat-recorder/com.namakerorin.neko
からの引用です。

PCに接続できないような環境下やlogを常時取得しておきたい局面などで重宝します。

■概要
・logcat出力をSDカードなどのストレージに出力します (任意のパスに切り替え可能です)
・logcatの出力形式は"-v threadtime" です
・logファイルは時間(1分~6時間)とサイズ(500KB~100MB)で自動的に分割します
・Broadcast Intentをlogに出力します (Battery、Telephony、Configulation、Wi-fi、Bluetooth、Mediaなど)
・logの全体サイズの制限できます (100MB~4GB、制限なし)
・logを参照したり削除ができるファイラーがついています

Android端末の環境

環境は以下の通りです。

  • 端末名: Xperia 10 Ⅱ
  • OS: Android 10

導入方法

https://apkpure.com/jp/logcat-recorder/com.namakerorin.neko
からAPKファイルをダウンロードします。

ダウンロードしたら、テストしたい端末とUSB接続するなどしておき、以下のコマンドでインストール&権限付与します。

adb install 'Logcat Recorder_v1.0.2_apkpure.com.apk'
adb shell pm grant com.namakerorin.neko android.permission.READ_LOGS

導入後、アプリを起動すると、以下のような権限許可の画面が出てきます。

両方とも許可したうえで「続行」をタップします。
すると、以下のようなダイアログが出てきます。(うろ覚えですが、Android 8では出てこなかったと思います。どのバージョンから出るようになったかは不明)

いったん「OK」をタップして次に進みます。
導入はこれで完了です。

使い方

アプリを有効にするには、「Record logcat」のトグルをONにするだけです。

ONにすると、ステータスバーのところにアプリアイコンが表示されます。
このアイコンが表示されている間は、ログが保存され続けることになります。
OFFにすると保存が中断されます。

保存されたログの確認方法

「Log viewer」をタップすると、以下の画面に遷移します。

日時ごとにどのくらいのデータ量が保存されているかが確認できます。
チェックボックスをタップすると、画面が以下のように変化し、ゴミ箱ボタンをタップするとログを削除することができます。

日時のテキストをタップすると、さらにテキストファイルが表示されます。
先ほどと同様、チェックボックスをタップすると、画面が以下のように変化し、ゴミ箱ボタンをタップするとログを削除することができます。

また、ファイル名をタップすると別アプリからファイルの中身を閲覧することができます。(私の環境ではエラーが出て表示できませんでした。。)

保存されたファイル群をPCにコピーすることもできて、その場合は以下コマンドを実行します。

adb pull /storage/emulated/0/neko/ [PC上の保存したい場所]

まとめ

PCに接続できないような環境下や、耐久試験などでLogcatのログを取得し続けたいときに使えるアプリ「Logcat Recorder」を紹介しました。
ただし、Android 10以降ではうまく動作しない可能性がありますので注意してください。
(もっといい方法があれば教えてくださると嬉しいです)