Compare commits

...

13 Commits

7 changed files with 46 additions and 8 deletions

View File

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

View File

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

View File

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

View File

@@ -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)

View File

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

View File

@@ -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" }

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