Google Playストアでアプリを公開してからLogcatにデバッグログが出力されたままになっていることに気がつくと恥ずかしいです。
そのため、リリースビルドではログ出力せずデバッグビルドのみログ出力するログクラスを作成します。
Androidアプリの開発は、昔からログ出力用のクラス名をTAG変数に定義して使用する慣習がありますが、面倒なので自動でクラス名を取得する機能を付けてみます。
そそたた
リリースビルドでのログ無効化は、ProGuardでログ出力を削除する方法もあります。
ソースコード
作成するログクラスは、android.util.Logクラスのラッパークラスを作成し、BuildConfig.DEBUGがtrueの場合はログ出力しないという単純なものです。
開発環境は次の通りです。
PC | MacBook Pro(2016年モデル) |
IDE | Android Studio 4.0.1 |
Android SDK | minSdkVersion 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)
}
}
コメント