Compare commits

...

13 Commits

7 changed files with 46 additions and 8 deletions

View File

@@ -1,7 +1,20 @@
# Changelog
## 0.5.0
* `Kotlin`: `1.7.10`
## 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
* Fixes in resolution ambiguity for functions with messages
## 0.4.0
**THIS UPDATE CONTAINS BREAKING CHANGES**

View File

@@ -9,5 +9,5 @@ android.enableJetifier=true
# Project data
group=dev.inmo
version=0.4.1
android_code_version=11
version=0.5.0
android_code_version=13

View File

@@ -1,12 +1,12 @@
[versions]
kotlin = "1.6.21"
kotlin-gradle-plugin = "7.0.4"
kotlin = "1.7.10"
kotlin-gradle-plugin = "7.2.2"
dexcount = "3.1.0"
junit_version = "4.12"
test_ext_junit_version = "1.1.2"
espresso_core = "3.3.0"
test_ext_junit_version = "1.1.3"
espresso_core = "3.4.0"
android-minSdk = "21"
android-compileSdk = "32"

View File

@@ -7,3 +7,7 @@ class CallbackKSLog(
) : KSLog {
override fun performLog(level: LogLevel, tag: String?, message: Any, throwable: Throwable?) = performLogCallback(level, tag, message, throwable)
}
fun KSLog(
performLogCallback: SimpleKSLogCallback
) = CallbackKSLog(performLogCallback)

View File

@@ -1,6 +1,7 @@
package dev.inmo.kslog.common
import dev.inmo.kslog.common.filter.filtered
import dev.inmo.kslog.common.utils.plus
enum class LogLevel {
@@ -110,3 +111,6 @@ fun KSLog(
).filtered { l, _, _ ->
minLoggingLevel.ordinal <= l.ordinal
}
fun setDefaultKSLog(newDefault: KSLog) { KSLog.default = newDefault }
fun addDefaultKSLog(newDefault: KSLog) { KSLog.default = KSLog.default + newDefault }

View File

@@ -1,6 +1,8 @@
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
val defaultMessageFormatter: MessageFormatter = { l, t, m, _ -> "[$l] $t - $m" }
val defaultMessageFormatter: MessageFormatter = { l, t, m, _ -> "[$l] ${t ?.let { "$it " } ?: ""}- $m" }

View 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 }
}