Skip to content

Commit 334e105

Browse files
authored
Merge pull request #1044 from sproctor/fix/kermit-global
make kermit logger non-global
2 parents 067ecc0 + 9da65da commit 334e105

File tree

1 file changed

+24
-6
lines changed

1 file changed

+24
-6
lines changed

Supabase/src/commonMain/kotlin/io/github/jan/supabase/logging/SupabaseLogger.kt

Lines changed: 24 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,10 @@ package io.github.jan.supabase.logging
22

33
import co.touchlab.kermit.Logger
44
import co.touchlab.kermit.Severity
5+
import co.touchlab.kermit.loggerConfigInit
6+
import co.touchlab.kermit.platformLogWriter
57
import io.github.jan.supabase.SupabaseClient
8+
import io.github.jan.supabase.annotations.SupabaseInternal
69

710
/**
811
* An interface for logging in Supabase plugins.
@@ -34,23 +37,32 @@ abstract class SupabaseLogger {
3437
}
3538
}
3639

40+
/**
41+
* Set the log level for this logger
42+
* @param level The log level
43+
*/
44+
@SupabaseInternal
45+
abstract fun setLevel(level: LogLevel)
46+
3747
}
3848

3949
/**
4050
* A logger implementation using the Kermit logger.
4151
* @param level The minimum log level for this logger.
4252
* @param tag The tag for this logger
43-
* @param logger The Kermit logger
4453
*/
4554
internal class KermitSupabaseLogger(
46-
override val level: LogLevel,
55+
initialLevel: LogLevel,
4756
tag: String,
48-
private val logger: Logger = Logger.withTag(tag)
4957
) : SupabaseLogger() {
5058

51-
init {
52-
logger.mutableConfig.minSeverity = level.toSeverity()
53-
}
59+
override var level: LogLevel = initialLevel
60+
private set
61+
62+
private val logger: Logger = Logger(
63+
config = loggerConfigInit(platformLogWriter(), minSeverity = level.toSeverity()),
64+
tag = tag,
65+
)
5466

5567
override fun log(level: LogLevel, throwable: Throwable?, message: String) {
5668
logger.log(level.toSeverity(), logger.tag, throwable, message)
@@ -64,6 +76,12 @@ internal class KermitSupabaseLogger(
6476
LogLevel.NONE -> Severity.Assert
6577
}
6678

79+
@SupabaseInternal
80+
override fun setLevel(level: LogLevel) {
81+
this.level = level
82+
logger.mutableConfig.minSeverity = level.toSeverity()
83+
}
84+
6785
}
6886

6987
/**

0 commit comments

Comments
 (0)