Skip to content

Commit 4b2341e

Browse files
authored
Merge pull request #14 from magic-cucumber/make-logger-replacable
add simple log-appender to transfer log
2 parents 196b583 + a3746df commit 4b2341e

1 file changed

Lines changed: 42 additions & 7 deletions

File tree

  • webview-compose/src/commonMain/kotlin/io/github/kdroidfilter/webview/util

webview-compose/src/commonMain/kotlin/io/github/kdroidfilter/webview/util/KLogger.kt

Lines changed: 42 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,8 @@ package io.github.kdroidfilter.webview.util
55
*
66
* Keep logging simple and dependency-free across platforms.
77
*/
8-
internal object KLogger {
9-
private var minSeverity: KLogSeverity = KLogSeverity.None
10-
11-
fun setMinSeverity(severity: KLogSeverity) {
12-
minSeverity = severity
13-
}
8+
interface KLogger {
9+
fun setMinSeverity(severity: KLogSeverity)
1410

1511
fun d(tag: String? = null, msg: () -> String) = log(KLogSeverity.Debug, tag, null, msg)
1612

@@ -20,7 +16,46 @@ internal object KLogger {
2016

2117
fun e(t: Throwable? = null, tag: String? = null, msg: () -> String) = log(KLogSeverity.Error, tag, t, msg)
2218

23-
private fun log(severity: KLogSeverity, tag: String?, t: Throwable?, msg: () -> String) {
19+
fun log(severity: KLogSeverity, tag: String?, t: Throwable?, msg: () -> String)
20+
21+
22+
companion object : KLogger {
23+
private val loggers = mutableListOf<KLogger>(DefaultKLogger)
24+
25+
fun addLogger(logger: KLogger) {
26+
loggers.add(logger)
27+
}
28+
29+
fun removeLogger(logger: KLogger) {
30+
loggers.remove(logger)
31+
}
32+
33+
override fun setMinSeverity(severity: KLogSeverity) {
34+
for (i in loggers) {
35+
i.setMinSeverity(severity)
36+
}
37+
}
38+
39+
override fun log(
40+
severity: KLogSeverity,
41+
tag: String?,
42+
t: Throwable?,
43+
msg: () -> String
44+
) = loggers.forEach {
45+
it.log(severity, tag, t, msg)
46+
}
47+
48+
}
49+
}
50+
51+
internal object DefaultKLogger : KLogger {
52+
private var minSeverity: KLogSeverity = KLogSeverity.None
53+
54+
override fun setMinSeverity(severity: KLogSeverity) {
55+
minSeverity = severity
56+
}
57+
58+
override fun log(severity: KLogSeverity, tag: String?, t: Throwable?, msg: () -> String) {
2459
if (severity.ordinal < minSeverity.ordinal) return
2560
val prefix = buildString {
2661
append("[ComposeWebView]")

0 commit comments

Comments
 (0)