Android Kotlin Logger
Kotlin
Android
Log
Logger
Android 開發者最常使用的 Log 方式應該就是 android.util.Log
提供的 Log method
這些 Log method 就不在此說明了
但是這樣 Log 不會因為在 Production 環境或者是 Debug 環境不同而顯示或不顯示
所以一般來說都會自己寫一個 Logger Util
列一下 個人認為 Logger util 需要有的功能
- 只在 Debug 環境下 Logger
- 顯示 Log 發出的檔案名稱跟行數
- 可以點擊顯示的檔案名稱跟行數直接切換到該檔案該行數
上 CODE 可以直接到 Gist 去取得全文
import android.util.Log
import co.xxxx.xxxx.BuildConfig
object LoggerUtil {
private val isShowLog: Boolean = BuildConfig.DEBUG
private enum class LogType { E, I, D, V, W }
fun e(message: String) { log(LogType.E, message) }
fun i(message: String) { log(LogType.I, message) }
fun d(message: String) { log(LogType.D, message) }
fun v(message: String) { log(LogType.V, message) }
fun w(message: String) { log(LogType.W, message) }
private fun log(type: LogType, log: String) {
// 若是 Debug 環境 不顯示
if (!isShowLog) return
// 取出檔案名稱 行數 method名稱
val stack = Throwable().stackTrace[2]
val fileName = stack.fileName
val lineNumber = stack.lineNumber
val methodName = stack.methodName
// 包含在()裡面的內容, 在 Logcat 裡面可以點擊
val tag = "($fileName:$lineNumber)"
val message = "$methodName: $log"
when (type) {
LogType.E -> Log.e(tag, message)
LogType.I -> Log.i(tag, message)
LogType.D -> Log.d(tag, message)
LogType.V -> Log.v(tag, message)
LogType.W -> Log.w(tag, message)
}
}
}
打完收工