2022-06-09 03:56:27 +00:00
|
|
|
package dev.inmo.kslog.common
|
|
|
|
|
2023-11-18 11:15:23 +00:00
|
|
|
import kotlin.jvm.JvmInline
|
|
|
|
|
2022-07-30 08:56:26 +00:00
|
|
|
typealias SimpleKSLogCallback = (level: LogLevel, tag: String?, message: Any, throwable: Throwable?) -> Unit
|
|
|
|
|
2023-11-18 11:15:23 +00:00
|
|
|
/**
|
|
|
|
* Creates simple [KSLog] which will pass all incoming [performLog] calls to [performLogCallback]
|
|
|
|
*/
|
|
|
|
@JvmInline
|
|
|
|
value class CallbackKSLog(
|
2022-07-30 08:56:26 +00:00
|
|
|
private val performLogCallback: SimpleKSLogCallback
|
2022-06-09 03:56:27 +00:00
|
|
|
) : KSLog {
|
2022-07-30 08:12:45 +00:00
|
|
|
override fun performLog(level: LogLevel, tag: String?, message: Any, throwable: Throwable?) = performLogCallback(level, tag, message, throwable)
|
2022-06-09 03:56:27 +00:00
|
|
|
}
|
2022-07-31 13:09:01 +00:00
|
|
|
|
2023-11-18 11:15:23 +00:00
|
|
|
/**
|
|
|
|
* Creating [CallbackKSLog] using [performLogCallback] as an argument for constructor
|
|
|
|
*/
|
2022-07-31 13:09:01 +00:00
|
|
|
fun KSLog(
|
|
|
|
performLogCallback: SimpleKSLogCallback
|
|
|
|
) = CallbackKSLog(performLogCallback)
|