BLOG.tass.io

カラフルなAndroid Logcat 「pidcat」

2014-06-02

Androidでログ取得するとき、どうしてますか?

  • Eclipseを起動してDDMSパースペクティブに切り替える→激重
  • DDMSを起動してアプリウィンドウから読む?→ログだけなのにこんなに機能いらない
  • ”adb logcat”を使う→軽いけど読みづらい

というわけで、logcatの代替として、色付きでAndroidのログをコマンドラインで読むためのツール「pidcat」 https://github.com/JakeWharton/pidcat の紹介です。 わりと有名なツールですが、日本語の紹介記事は少なそうだったのでメモメモです。

普通のlogcatだとこんな感じですが…。

adb logcat screenshot

pidcatだと、こんなにカラフルになります!

pidcat screenshot

インストール

osxではbrewから簡単にインストールできます。他のOSの場合は、Pythonをインストールした上で、pidcat.pyをgithubから持ってきてPATHを通すだけです。

$ brew install pidcat

使い方

単純にターミナルからpidcatと入力するだけで、adb logcat同様にログが読み取れます。

$ pidcat

また、特定のアプリにだけログを絞り込みたい場合は、パッケージ名をオプションに付けて起動します。

$ pidcat com.example.app1

もちろん複数のパッケージを指定してもOKです。

$ pidcat com.example.app1 com.example.app2

他にも色々オプションがあります。adb logcatと互換ではないですが、一応必要な物はそろっているようです。

$ pidcat -h
usage: pidcat [-h] [-w N] [-l {V,D,I,W,E,F}] [--color-gc]
              [--always-display-tags] [-s DEVICE_SERIAL] [-d] [-e]
              [package [package ...]]

Filter logcat by package name

positional arguments:
  package               Application package name(s)

optional arguments:
  -h, --help            show this help message and exit
  -w N, --tag-width N   Width of log tag
  -l {V,D,I,W,E,F}, --min-level {V,D,I,W,E,F}
                        Minimum level to be displayed
  --color-gc            Color garbage collection
  --always-display-tags
                        Always display the tag name
  -s DEVICE_SERIAL, --serial DEVICE_SERIAL
                        Device serial number (adb -s option)
  -d, --device          Use first device for log input (adb -d option).
  -e, --emulator        Use first emulator for log input (adb -e option).
オプション 機能
-h, –help 上記ヘルプを表示します
-w <width>,
–tag-width <width>
左端の行に表示されるTAGの横幅を指定します。pidcat -w 5と指定すると、こんな感じ
-l {V,D,I,W,E,F},
–min-level {V,D,I,W,E,F}
ログに出力される最低のログレベルを指定します。
V=Verbose, D=Debug, I=Information, W=Warning, E=Error, F=Fatal。pidcat -l Eとすると、ErrorとFatalのログしか出力されません。
–color-gc GC(ガベージコレクション)のログが色付けされます。
–always-display-tags 通常は同じTAGのログが続いた場合は2行目移行が空欄になりますが、このオプションをつけると常にTAG列が表示されるようになります。
-s <デバイス番号>,
–serial <デバイス番号>
デバイスのシリアル番号を指定して、ログを取得する対象を指定します。これはadb -sのoptionと同じです。
-d,
–device
最初に見つかった実デバイスを、ログを取得する対象に指定します。これはadb -dのoptionと同じです。
-e,
–emulator
最初に見つかったエミュレータを、ログを取得する対象に指定します。これはadb -eのoptionと同じです。

Michael Kuroneko

Written by Michael Kuroneko. Follow me on twitter, github.