【Android】開発中でのみログを出力する方法

こんにちは、kazuです。
これを見ていると言うことはアプリ開発プロジェクトが始まったばかりなのではないでしょうか?
ログは開発をする時に必須な技術になりますが、気をつけなければセキュリティ事故が起きてしまいます。
なので、今回は開発中でのみログを出力する方法を解説していきます。

はじめに

まずどのように開発中でのみログを出力するかということです。
Androidアプリ開発には同じアプリのプロジェクトでもデバッグアプリやリリースアプリというように環境別でビルドすることができます。
上記を利用して開発中=デバッグアプリをビルドした時のみにログを出力するという方法になります。
この方法は大規模なプロジェクトでも使われている一般的な方法です。

実際にコードをみてみよう

では早速コードを見ていきましょう。
buildConfigFieldを使用して、リリースアプリの場合はfalseを設定します。
そしてデバッグアプリの場合はtrueを設定します。
そして実際に呼び出す時がbuild.gradleのコードの下です。
条件式の中に設定した値を入れてtrueならログを出力するようにします。

buildTypes {
        // リリースアプリの設定
        release {
            ・・・
            buildConfigField "boolean", "ENABLE_LOG", "false"
        }

        // デバッグアプリの設定
        debug {
            ・・・
            buildConfigField "boolean", "ENABLE_LOG", "true"
        }
    }
override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        // デバッグアプリの設定だった場合
        if (BuildConfig.ENABLE_LOG) {
            Log.d("tag", "message")
        }
}

ちょっと補足

ちょっと補足です。今回したbuildConfigFieldはカスタム可能で、
今回は”boolean”, “ENABLE_LOG”としましたが、例えば”string”,”hoge”のようなもの設定することが可能です。
ちなみにカスタムフィールドを設定するとビルド時にBuildConfigクラスを生成されます。
生成された定義をJavaやKotlinでは取得します。

Android Developers

Gradle と Android Plugin for Gradle を使用すると、Android アプリやライブラリを…

最後に

いかがでしたでしょうか。今回は開発中でのみログを出力する方法を解説しました。
実際に使用してみるとやはり便利です。そりゃそうですデバッグ環境でのみログが出てくるし、リリース時にログを残したままでも条件分岐があるため出力されないようになっています。
今回は短かったですね、ですがすごく便利なので覚えておくといいでしょう。

最後までご覧いただきありがとうございました。