Android 向けの Logger である Timber を試した。
Square, Inc. の Jake Wharton さんがつくっている。 Android 関連でよく出てくる名前だなあ。有名な人なんだろうな。
2017-05-22 に出てきた square/picasso や square/retrofit も Square だった。
2017-05-20 に出てきた JakeWharton/butterknife もこの人だった。
さて。 Timber は Android の Log
クラスの上につくられているらしい。機能としては Tree
を差し替えることでログの出力方法を変えられることと String.format
を内蔵していること。
標準の DebugTree
だと TAG
を自動で設定してくれる。↓のような定型句が Android の Log
にはある。書けばいいのだけど、面倒だ。
private static final String TAG = MainActivity.class.getSimpleName(); // ... Log.d(TAG, "foo");
Timber だと↓のように、それがなくなる。
Timber.d("foo");
String.format
に対応しているので、↓のような埋め込みもしやすい。
Timber.d("(%dms)", ms);
全体での On/Off は Application
クラスで Timber.plant()
するかで決まる。 plant
で好きな Tree
を設定するだけ。
public class MyApplication extends Application { @Override public void onCreate() { super.onCreate(); if (BuildConfig.DEBUG) { Timber.plant(new DebugTree()); } } }
Tree
を継承したクラスも定義できる。↓のような記事もある。
ほかにも紹介記事。
追記: 2017-06-08 に補足で Android Studio で Live Templates を設定して Log
と同様に補完を効かせる方法について書いた。