mirror of
https://github.com/InsanusMokrassar/KSLog.git
synced 2025-11-14 02:10:16 +00:00
a lot of changes and improvements
This commit is contained in:
@@ -3,7 +3,7 @@ package dev.inmo.kslog.common
|
||||
import dev.inmo.kslog.common.filter.filtered
|
||||
|
||||
/**
|
||||
* Logger based on [defaultLogging] or [logging] parameter
|
||||
* Logger based on [KSLoggerDefaultPlatformLoggerLambda] or [logging] parameter
|
||||
*
|
||||
* @param defaultTag will be used in case when `tag` parameter in [performLog] omitted
|
||||
* @param messageFormatter special formatter which creating [String] inside of [performLog] for each call. Defaults to
|
||||
@@ -14,20 +14,20 @@ import dev.inmo.kslog.common.filter.filtered
|
||||
class DefaultKSLog(
|
||||
private val defaultTag: String,
|
||||
private val messageFormatter: MessageFormatter = defaultMessageFormatter,
|
||||
private val logging: (level: LogLevel, tag: String, message: Any, throwable: Throwable?) -> Unit = defaultLogging
|
||||
private val logging: (level: LogLevel, tag: String, message: Any, throwable: Throwable?) -> Unit = KSLoggerDefaultPlatformLoggerLambda
|
||||
) : KSLog {
|
||||
override fun performLog(level: LogLevel, tag: String?, message: Any, throwable: Throwable?) {
|
||||
val tag = tag ?: defaultTag
|
||||
val resultTag = tag ?: defaultTag
|
||||
|
||||
val text = messageFormatter(level, tag, message, throwable)
|
||||
logging(level, tag, text, throwable)
|
||||
val text = messageFormatter(level, resultTag, message, throwable)
|
||||
logging(level, resultTag, text, throwable)
|
||||
}
|
||||
|
||||
override fun performLog(level: LogLevel, tag: String?, throwable: Throwable?, messageBuilder: () -> Any) {
|
||||
val tag = tag ?: defaultTag
|
||||
val resultTag = tag ?: defaultTag
|
||||
|
||||
val text = messageFormatter(level, tag, messageBuilder(), throwable)
|
||||
logging(level, tag, text, throwable)
|
||||
val text = messageFormatter(level, resultTag, messageBuilder(), throwable)
|
||||
logging(level, resultTag, text, throwable)
|
||||
}
|
||||
|
||||
override suspend fun performLogS(
|
||||
@@ -36,10 +36,10 @@ class DefaultKSLog(
|
||||
throwable: Throwable?,
|
||||
messageBuilder: suspend () -> Any
|
||||
) {
|
||||
val tag = tag ?: defaultTag
|
||||
val resultTag = tag ?: defaultTag
|
||||
|
||||
val text = messageFormatter(level, tag, messageBuilder(), throwable)
|
||||
logging(level, tag, text, throwable)
|
||||
val text = messageFormatter(level, resultTag, messageBuilder(), throwable)
|
||||
logging(level, resultTag, text, throwable)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -48,7 +48,7 @@ fun DefaultKSLog(
|
||||
defaultTag: String,
|
||||
filter: MessageFilter = { _, _, _ -> true },
|
||||
messageFormatter: MessageFormatter = defaultMessageFormatter,
|
||||
logging: (level: LogLevel, tag: String, message: Any, throwable: Throwable?) -> Unit = defaultLogging
|
||||
logging: (level: LogLevel, tag: String, message: Any, throwable: Throwable?) -> Unit = KSLoggerDefaultPlatformLoggerLambda
|
||||
) = DefaultKSLog(
|
||||
defaultTag, messageFormatter, logging
|
||||
).filtered(filter)
|
||||
|
||||
@@ -89,7 +89,6 @@ interface KSLog {
|
||||
|
||||
operator fun KSLog.invoke(performLogCallback: (level: LogLevel, tag: String?, message: Any, throwable: Throwable?) -> Unit) = CallbackKSLog(performLogCallback)
|
||||
|
||||
internal expect val defaultLogging: (level: LogLevel, tag: String, message: Any, throwable: Throwable?) -> Unit
|
||||
internal val printlnLogging: (level: LogLevel, tag: String, message: Any, throwable: Throwable?) -> Unit = { l, t, m, e ->
|
||||
println(defaultMessageFormatter(l, t, m, e))
|
||||
}
|
||||
@@ -131,9 +130,9 @@ fun KSLog(
|
||||
levels: Iterable<LogLevel>,
|
||||
messageFormatter: MessageFormatter = defaultMessageFormatter
|
||||
): KSLog {
|
||||
val levels = levels.toSet()
|
||||
val levelsSet = levels.toSet()
|
||||
return KSLog (defaultTag, messageFormatter).filtered { l, _, _ ->
|
||||
l in levels
|
||||
l in levelsSet
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
package dev.inmo.kslog.common
|
||||
|
||||
/**
|
||||
* Default logger for current platform. You may change it, but you should remember that it is global logger
|
||||
* used in [KSLog.default] by default
|
||||
*/
|
||||
expect var KSLoggerDefaultPlatformLoggerLambda: (level: LogLevel, tag: String, message: Any, throwable: Throwable?) -> Unit
|
||||
Reference in New Issue
Block a user