rewrite of API with expect-actual and removing of redundant platform-specific factory names

This commit is contained in:
2022-06-08 22:51:03 +06:00
parent f5cc748ac5
commit be047cb8b5
7 changed files with 72 additions and 106 deletions

View File

@@ -2,42 +2,20 @@ package dev.inmo.kslog.common
import android.util.Log
fun KSAndroidLog(
actual fun KSLog(
defaultTag: String,
filter: (l: LogLevel, t: String, m: String, Throwable?) -> Boolean
) = KSLog { l, t, m, e ->
filter: MessageFilter,
messageFormatter: MessageFormatter
): KSLog = KSLog { l, t, m, e ->
if (!filter(l, t ?: defaultTag, m, e)) return@KSLog
val tag = t ?: defaultTag
val text = messageFormatter(l, tag, m, e)
when(l) {
LogLevel.DEBUG -> Log.d(tag, m, e)
LogLevel.VERBOSE -> Log.v(tag, m, e)
LogLevel.INFO -> Log.i(tag, m, e)
LogLevel.WARNING -> Log.w(tag, m, e)
LogLevel.ERROR -> Log.e(tag, m, e)
LogLevel.ASSERT -> Log.wtf(tag, m, e)
LogLevel.DEBUG -> Log.d(tag, text, e)
LogLevel.VERBOSE -> Log.v(tag, text, e)
LogLevel.INFO -> Log.i(tag, text, e)
LogLevel.WARNING -> Log.w(tag, text, e)
LogLevel.ERROR -> Log.e(tag, text, e)
LogLevel.ASSERT -> Log.wtf(tag, text, e)
}
}
fun KSAndroidLog(
defaultTag: String,
levels: Iterable<LogLevel>
): KSLog {
val levels = levels.toSet()
return KSAndroidLog (defaultTag) { l, _, _, _ ->
l in levels
}
}
inline fun KSAndroidLog(
defaultTag: String,
firstLevel: LogLevel,
secondLevel: LogLevel,
vararg otherLevels: LogLevel
): KSLog = KSAndroidLog(defaultTag, setOf(firstLevel, secondLevel, *otherLevels))
fun KSAndroidLog(
defaultTag: String,
minLoggingLevel: LogLevel = LogLevel.VERBOSE
): KSLog = KSAndroidLog (defaultTag) { l, _, _, _ ->
minLoggingLevel.ordinal <= l.ordinal
}