Log.vはもう古い?Timberを使ってデバッグ時のみログ出力する方法

投稿日:2017年11月7日 更新日:

Androidアプリ開発に入門すると、いろいろな場面でログを出力することになります。このログ出力ですが、普通はデバッグ時のみログ出力したいので、ちょこちょことログ出力のコードを消したり、デバッグ時のみログ出力するためにこんな感じのコードを書いたりしていると思います。

if (BuildConfig.DEBUG) { Log.v(TAG, "message"); }

わざわざログ出力のコードを消したり、上記のようなコードが大量にあふれたりするのは避けたいですよね?私は避けたいです。そこで登場するのが、ログ出力のためのオープンソースのライブラリ「Timber」です。手軽に導入できて効果が高いので、とても人気のあるライブラリです。

Timberを使ってデバッグ時のみログ出力する方法を解説していきます。

Timberの導入

まずはTimberをプロジェクトに導入しましょう。app/build.gradleのdependenciesに1行追加して、Timberを導入します。プロジェクトのbuild.gradleとアプリのbuild.gradleがありますが、アプリの方のbuild.gradleに書きます。書いたら、SyncしてTimberの導入は完了です。

dependencies {
    implementation 'com.jakewharton.timber:timber:4.6.0'
}

環境によっては、implementationではなくcompileと書く必要があるかもしれません。

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

また、Timberの最新のバージョン番号は公式のリポジトリで確認しましょう。Timberのリポジトリは以下のURLにあります。

JakeWharton/timber: A logger with a small, extensible API which provides utility on top of Android's normal Log class.

Timberの使い方

Timberをプロジェクトに導入したら、カスタムApplicationクラスのonCreateあたりで初期化処理を行います。本記事ではカスタムApplicationクラスについては解説しません。カスタムApplicationクラスについては、以下の記事を参考にしてみてください。

初期化処理はここで。Applicationクラスを継承したカスタムApplicationクラスを作る!

Applicationクラスを拡張して、カスタムApplicationクラスを作ってみましょう!Applicationクラスは、アプリケーション全体の状態を管理するためのクラスです。ライブラリの初期化 ...

続きを見る

Timberでデバッグ時のみログ出力するためには、onCreateの中でデバッグ時のみTimberを有効化するよう、以下のように書きます。これ以降、デバッグ時のみTimberがログを出力してくれるようになります。

@Override
public void onCreate() {
    super.onCreate();

    if (BuildConfig.DEBUG) {
        Timber.plant(new Timber.DebugTree());
    }
}

Timberによるログ出力は以下のように行います。Log.vによるログ出力よりもお手軽にログを出力できていい感じです。ログを吐き出したクラスの名前も同時に出力してくれます。

Timber.v("message");

ちなみに、Logクラスと同様、v(すべてのログ情報)、d(デバッグ情報)、i(情報)、w(警告)、e(エラー)のメソッドが使えます。

まとめ

ログ出力のためのオープンソースのライブラリ「Timber」を使って、デバッグ時のみログ出力する方法をまとめました。手軽に導入できて、効果も高いライブラリです。是非、Timberを使ってログの出力をしてみてください!

茨城県つくば市在住のAndroidアプリエンジニアです。

-Android

Copyright© Androidアプリ開発@つくば , 2017 AllRights Reserved Powered by AFFINGER4.