mirror of
https://github.com/InsanusMokrassar/KSLog.git
synced 2024-11-18 06:03:47 +00:00
commit
28d61a7b7c
@ -1,5 +1,12 @@
|
|||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
|
## 0.4.2
|
||||||
|
|
||||||
|
* Add `setDefaultKSLog` and `addDefaultKSLog`
|
||||||
|
* Add `plus` operation for two `KSLog` instances to call them both on each log performing
|
||||||
|
* Add `KSLog` factory for simple creation of `CallbackKSLog`
|
||||||
|
* Add `MessageFormatter` factory
|
||||||
|
|
||||||
## 0.4.1
|
## 0.4.1
|
||||||
|
|
||||||
* Fixes in resolution ambiguity for functions with messages
|
* Fixes in resolution ambiguity for functions with messages
|
||||||
|
@ -9,5 +9,5 @@ android.enableJetifier=true
|
|||||||
# Project data
|
# Project data
|
||||||
|
|
||||||
group=dev.inmo
|
group=dev.inmo
|
||||||
version=0.4.1
|
version=0.4.2
|
||||||
android_code_version=11
|
android_code_version=12
|
||||||
|
@ -7,3 +7,7 @@ class CallbackKSLog(
|
|||||||
) : KSLog {
|
) : KSLog {
|
||||||
override fun performLog(level: LogLevel, tag: String?, message: Any, throwable: Throwable?) = performLogCallback(level, tag, message, throwable)
|
override fun performLog(level: LogLevel, tag: String?, message: Any, throwable: Throwable?) = performLogCallback(level, tag, message, throwable)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun KSLog(
|
||||||
|
performLogCallback: SimpleKSLogCallback
|
||||||
|
) = CallbackKSLog(performLogCallback)
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package dev.inmo.kslog.common
|
package dev.inmo.kslog.common
|
||||||
|
|
||||||
import dev.inmo.kslog.common.filter.filtered
|
import dev.inmo.kslog.common.filter.filtered
|
||||||
|
import dev.inmo.kslog.common.utils.plus
|
||||||
|
|
||||||
|
|
||||||
enum class LogLevel {
|
enum class LogLevel {
|
||||||
@ -110,3 +111,6 @@ fun KSLog(
|
|||||||
).filtered { l, _, _ ->
|
).filtered { l, _, _ ->
|
||||||
minLoggingLevel.ordinal <= l.ordinal
|
minLoggingLevel.ordinal <= l.ordinal
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun setDefaultKSLog(newDefault: KSLog) { KSLog.default = newDefault }
|
||||||
|
fun addDefaultKSLog(newDefault: KSLog) { KSLog.default = KSLog.default + newDefault }
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
package dev.inmo.kslog.common
|
package dev.inmo.kslog.common
|
||||||
|
|
||||||
typealias MessageFormatter = (l: LogLevel, t: String, m: Any, Throwable?) -> String
|
typealias MessageFormatter = (l: LogLevel, t: String?, m: Any, Throwable?) -> String
|
||||||
|
@Suppress("NOTHING_TO_INLINE")
|
||||||
|
inline fun MessageFormatter(noinline formatter: MessageFormatter) = formatter
|
||||||
typealias MessageFilter = (l: LogLevel, t: String?, Throwable?) -> Boolean
|
typealias MessageFilter = (l: LogLevel, t: String?, Throwable?) -> Boolean
|
||||||
val defaultMessageFormatter: MessageFormatter = { l, t, m, _ -> "[$l] $t - $m" }
|
val defaultMessageFormatter: MessageFormatter = { l, t, m, _ -> "[$l] ${t ?.let { "$it " } ?: ""}- $m" }
|
||||||
|
|
||||||
|
15
src/commonMain/kotlin/utils/Combination.kt
Normal file
15
src/commonMain/kotlin/utils/Combination.kt
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
package dev.inmo.kslog.common.utils
|
||||||
|
|
||||||
|
import dev.inmo.kslog.common.CallbackKSLog
|
||||||
|
import dev.inmo.kslog.common.KSLog
|
||||||
|
|
||||||
|
infix operator fun KSLog.plus(other: KSLog) = CallbackKSLog { l, t, m, e ->
|
||||||
|
val resultOfFirst = runCatching {
|
||||||
|
this@plus.performLog(l, t, m, e)
|
||||||
|
}
|
||||||
|
val resultOfSecond = runCatching {
|
||||||
|
other.performLog(l, t, m, e)
|
||||||
|
}
|
||||||
|
resultOfFirst.onFailure { throw it }
|
||||||
|
resultOfSecond.onFailure { throw it }
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user