rewrite way of filters work

This commit is contained in:
2022-07-30 14:56:26 +06:00
parent be48c2559e
commit 4d98b7df18
8 changed files with 142 additions and 24 deletions

View File

@@ -1,5 +1,6 @@
package dev.inmo.kslog.common
import dev.inmo.kslog.common.filter.filtered
import java.util.logging.Level
import java.util.logging.Logger
@@ -24,10 +25,11 @@ internal actual val defaultLogging: (level: LogLevel, tag: String, message: Any,
defaultKSLogLogger.doLog(l, t, m.toString(), e)
}
@Deprecated("Filtering should be replaced with FilterKSLog")
fun KSLog(
defaultTag: String,
logger: Logger,
filter: MessageFilter = { _, _, _ -> true },
filter: MessageFilter,
messageFormatter: MessageFormatter = defaultMessageFormatter
) = KSLog { l, t, m, e ->
if (!filter(l, t, e)) return@KSLog
@@ -35,6 +37,15 @@ fun KSLog(
logger.doLog(l, t ?: defaultTag, text, e)
}
fun KSLog(
defaultTag: String,
logger: Logger,
messageFormatter: MessageFormatter = defaultMessageFormatter
) = KSLog { l, t, m, e ->
val text = messageFormatter(l,t ?: defaultTag,m.toString(),e)
logger.doLog(l, t ?: defaultTag, text, e)
}
fun KSLog(
defaultTag: String,
logger: Logger,
@@ -42,7 +53,7 @@ fun KSLog(
messageFormatter: MessageFormatter = defaultMessageFormatter
): KSLog {
val levels = levels.toSet()
return KSLog (defaultTag, logger, { l, _, _ -> l in levels }, messageFormatter)
return KSLog (defaultTag, logger, messageFormatter).filtered { l, _, _ -> l in levels }
}
fun KSLog(
@@ -59,4 +70,4 @@ fun KSLog(
logger: Logger,
minLoggingLevel: LogLevel = LogLevel.values().first(),
messageFormatter: MessageFormatter = defaultMessageFormatter
): KSLog = KSLog (defaultTag, logger, { l, _, _ -> minLoggingLevel.ordinal <= l.ordinal }, messageFormatter)
): KSLog = KSLog (defaultTag, logger, messageFormatter).filtered { l, _, _ -> minLoggingLevel.ordinal <= l.ordinal }