【Android & Kotlin】デバッグビルドのみログ出力するログクラスを作ってみた

Android & Kotlin

Google Playストアでアプリを公開してからLogcatにデバッグログが出力されたままになっていることに気がつくと恥ずかしいです。

そのため、リリースビルドではログ出力せずデバッグビルドのみログ出力するログクラスを作成します。

Androidアプリの開発は、昔からログ出力用のクラス名をTAG変数に定義して使用する慣習がありますが、面倒なので自動でクラス名を取得する機能を付けてみます。

そそたた
そそたた

リリースビルドでのログ無効化は、ProGuardでログ出力を削除する方法もあります。

ソースコード

作成するログクラスは、android.util.Logクラスのラッパークラスを作成し、BuildConfig.DEBUGがtrueの場合はログ出力しないという単純なものです。

開発環境は次の通りです。

PCMacBook Pro(2016年モデル)
IDEAndroid Studio 4.0.1
Android SDKminSdkVersion 21
targetSdkVersion 30
言語Kotlin 1.3.72
package com.sosotata.minesweeper

import android.util.Log

class LOG {
    companion object {
        private fun println(priority: Int, msg: String)
        {
            if (BuildConfig.DEBUG) {
                Log.println(priority, Throwable().stackTrace[2].className.split(".").last(), msg)
            }
        }
        fun e(msg: String) = println(Log.DEBUG, msg)
        fun w(msg: String) = println(Log.WARN, msg)
        fun i(msg: String) = println(Log.INFO, msg)
        fun d(msg: String) = println(Log.DEBUG, msg)
        fun v(msg: String) = println(Log.VERBOSE, msg)
    }
}

コメント

タイトルとURLをコピーしました