25
20

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

[Android] Timber で debug ビルド時のみにログを出力する

Last updated at Posted at 2015-12-22

スクリーンショット 2015-12-21 19.10.31.png

Timber は、かの Jake Wharton 氏が開発したログ用のライブラリです。

GitHub ⇒ https://github.com/JakeWharton/timber

プロジェクトへの導入は Android Studio ベースのプロジェクトであれば簡単です。

dependencies { 
    compile 'com.jakewharton.timber:timber:3.1.0'
}

最新バージョンは執筆時点で 4.1.0 ですが、プロジェクトの minSdkVersion が 15 以上でないとエラーとなる(勘違いかもしれない)なので、私のプロジェクトでは 3.1.0 を使っています。

次のようなコードで感じでログ出力ができます。

Timber.tag("hoge").i("piyo=%s", "fuga");

%s %d 等が利用できる。それ以外に便利な点としては Tree によりログの挙動を変えたりカスタマイズできる点なのですが、それは今回は置いておきます。

本題の表題の件ですが、ログ出力を仕込む場合、debug ビルド時のみ出力することが多いと思います。その場合、コードは次のようになり、

if (BuildConfig.DEBUG) {
    Log.i("hoge", "piyo=fuga");
}

至るところに判定がはいると煩雑になってしまいます。また if 判定せず気軽にログ出力していたら、コードを消し忘れて release ビルドに残ってしまったり。

もしくは独自のログ用クラスを作る、となるのですが、Timber で debug ビルド時のみに Tree の設定をするという風にすると(release ビルド時は Tree の設定を何もしない)、

例えばApplicationクラス等
if (BuildConfig.DEBUG) {
    Timber.plant(new Timber.DebugTree());
}

例え Timber.tag("hoge").i("piyo=%s", "fuga"); というメソッドが release ビルド時に残っていても、ログ出力されない、という状態が実現できます。エラーにもなりません。

以上、簡単ですが共有でした^^;

25
20
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
25
20

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?