KSLog/src/commonMain/kotlin/DefaultKSLog.kt

41 lines
1.4 KiB
Kotlin
Raw Normal View History

2022-06-09 03:56:27 +00:00
package dev.inmo.kslog.common
class DefaultKSLog(
private val defaultTag: String,
2022-06-09 10:29:56 +00:00
val filter: MessageFilter = { _, _, _ -> true },
2022-06-09 03:56:27 +00:00
private val messageFormatter: MessageFormatter = defaultMessageFormatter,
private val logging: (level: LogLevel, tag: String, message: Any, throwable: Throwable?) -> Unit = defaultLogging
2022-06-09 03:56:27 +00:00
) : KSLog {
override fun performLog(level: LogLevel, tag: String?, message: Any, throwable: Throwable?) {
2022-06-09 10:29:56 +00:00
val tag = tag ?: defaultTag
if (filter(level, tag, throwable)) {
val text = messageFormatter(level, tag, message, throwable)
logging(level, tag, text, throwable)
}
2022-06-09 03:56:27 +00:00
}
override fun performLog(level: LogLevel, tag: String?, throwable: Throwable?, messageBuilder: () -> Any) {
2022-06-09 10:29:56 +00:00
val tag = tag ?: defaultTag
if (filter(level, tag, throwable)) {
val text = messageFormatter(level, tag, messageBuilder(), throwable)
logging(level, tag, text, throwable)
}
2022-06-09 03:56:27 +00:00
}
2022-06-09 10:29:56 +00:00
override suspend fun performLogS(
2022-06-09 03:56:27 +00:00
level: LogLevel,
tag: String?,
throwable: Throwable?,
messageBuilder: suspend () -> Any
2022-06-09 03:56:27 +00:00
) {
2022-06-09 10:29:56 +00:00
val tag = tag ?: defaultTag
if (filter(level, tag, throwable)) {
val text = messageFormatter(level, tag, messageBuilder(), throwable)
logging(level, tag, text, throwable)
}
2022-06-09 03:56:27 +00:00
}
}