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,
|
2022-06-09 10:29:56 +00:00
|
|
|
private val logging: (level: LogLevel, tag: String, message: String, throwable: Throwable?) -> Unit = defaultLogging
|
2022-06-09 03:56:27 +00:00
|
|
|
) : KSLog {
|
|
|
|
override fun performLog(level: LogLevel, tag: String?, message: String, 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: () -> String) {
|
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 () -> String
|
|
|
|
) {
|
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
|
|
|
}
|
|
|
|
}
|