Files
KSLog/src/androidMain/kotlin/KSLoggerDefaultPlatformLoggerLambda.kt
2025-11-12 13:45:57 +06:00

31 lines
1.2 KiB
Kotlin

package dev.inmo.kslog.common
import android.util.Log
/**
* Android platform implementation of the default logger
*
* Uses Android's `[android.util.Log]` as the logging backend, mapping KSLog levels
* to Android log levels:
* - [LogLevel.TRACE] → [Log.d] (debug)
* - [LogLevel.DEBUG] → [Log.d] (debug)
* - [LogLevel.VERBOSE] → [Log.v] (verbose)
* - [LogLevel.INFO] → [Log.i] (info)
* - [LogLevel.WARNING] → [Log.w] (warning)
* - [LogLevel.ERROR] → [Log.e] (error)
* - [LogLevel.ASSERT] → [Log.wtf] (what a terrible failure)
*
* Logs can be viewed using `adb logcat` or Android Studio's Logcat window.
*/
actual var KSLoggerDefaultPlatformLoggerLambda: (level: LogLevel, tag: String, message: Any, throwable: Throwable?) -> Unit = { l, t, m, e ->
val messageString = m.toString()
when(l) {
LogLevel.TRACE -> Log.d(t, messageString, e)
LogLevel.DEBUG -> Log.d(t, messageString, e)
LogLevel.VERBOSE -> Log.v(t, messageString, e)
LogLevel.INFO -> Log.i(t, messageString, e)
LogLevel.WARNING -> Log.w(t, messageString, e)
LogLevel.ERROR -> Log.e(t, messageString, e)
LogLevel.ASSERT -> Log.wtf(t, messageString, e)
}
}