All Downloads are FREE. Search and download functionalities are using the official Maven repository.

commonMain.typed.TypedKSLog.kt Maven / Gradle / Ivy

package dev.inmo.kslog.common.typed

import dev.inmo.kslog.common.*
import kotlin.reflect.KClass

class TypedKSLog(
    private val typedLoggers: Map?, KSLog>
) : KSLog {
    override fun performLog(level: LogLevel, tag: String?, message: Any, throwable: Throwable?) {
        (typedLoggers[message::class] ?: typedLoggers[null]) ?.performLog(level, tag, message, throwable)
    }
    override fun performLog(level: LogLevel, message: Any, throwable: Throwable?) {
        (typedLoggers[message::class] ?: typedLoggers[null]) ?.performLog(level, message, throwable)
    }
    override fun performLog(level: LogLevel, tag: String?, throwable: Throwable?, messageBuilder: () -> Any) {
        val message = messageBuilder()
        (typedLoggers[message::class] ?: typedLoggers[null]) ?.performLog(level, tag, message, throwable)
    }
    override suspend fun performLogS(level: LogLevel, tag: String?, throwable: Throwable?, messageBuilder: suspend () -> Any) {
        val message = messageBuilder()
        (typedLoggers[message::class] ?: typedLoggers[null]) ?.performLog(level, tag, message, throwable)
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy