Skip to content

Commit e68c860

Browse files
committed
Improve min log level
Update docs to indicate that log level passed to plugins is the min log level Don't allow changing the log level of the default logger after initialization Set Kermit minSeverity using logLevel
1 parent d559d20 commit e68c860

File tree

3 files changed

+15
-31
lines changed

3 files changed

+15
-31
lines changed

Supabase/src/commonMain/kotlin/io/github/jan/supabase/SupabaseClient.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -73,19 +73,19 @@ interface SupabaseClient {
7373
companion object {
7474

7575
/**
76-
* The default logging level used for plugins. Can be changed within the [SupabaseClientBuilder]
76+
* The default minimum logging level used for plugins. Can be changed within the [SupabaseClientBuilder]
7777
*/
7878
var DEFAULT_LOG_LEVEL = LogLevel.INFO
7979
internal set
8080

81-
val LOGGER = createLogger("Supabase-Core")
81+
val LOGGER: SupabaseLogger = createLogger("Supabase-Core")
8282

8383
/**
8484
* Creates a new [SupabaseLogger] using the [KermitSupabaseLogger] implementation.
8585
* @param tag The tag for the logger
8686
* @param level The logging level. If set to null, the [DEFAULT_LOG_LEVEL] property will be used instead
8787
*/
88-
fun createLogger(tag: String, level: LogLevel? = null) = KermitSupabaseLogger(level, tag)
88+
fun createLogger(tag: String, level: LogLevel? = null): SupabaseLogger = KermitSupabaseLogger(level, tag)
8989

9090
}
9191

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

Lines changed: 12 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,14 @@ package io.github.jan.supabase.logging
33
import co.touchlab.kermit.Logger
44
import co.touchlab.kermit.Severity
55
import io.github.jan.supabase.SupabaseClient
6-
import io.github.jan.supabase.annotations.SupabaseInternal
76

87
/**
98
* An interface for logging in Supabase plugins.
109
*/
1110
abstract class SupabaseLogger {
1211

1312
/**
14-
* The log level for this logger. If null, the [SupabaseClient.DEFAULT_LOG_LEVEL] will be used.
13+
* The minimum log level to handle for this logger. If null, the [SupabaseClient.DEFAULT_LOG_LEVEL] will be used.
1514
*/
1615
abstract val level: LogLevel?
1716

@@ -35,37 +34,29 @@ abstract class SupabaseLogger {
3534
}
3635
}
3736

38-
/**
39-
* Set the log level for this logger
40-
* @param level The log level
41-
*/
42-
@SupabaseInternal
43-
abstract fun setLevel(level: LogLevel)
44-
4537
}
4638

4739
/**
4840
* A logger implementation using the Kermit logger.
49-
* @param level The log level for this logger. If null, the [SupabaseClient.DEFAULT_LOG_LEVEL] will be used.
41+
* @param level The minimum log level for this logger.
5042
* @param tag The tag for this logger
5143
* @param logger The Kermit logger
5244
*/
53-
class KermitSupabaseLogger(level: LogLevel?, tag: String, private val logger: Logger = Logger.withTag(tag)):
54-
SupabaseLogger() {
55-
56-
override var level: LogLevel? = level
57-
private set
58-
59-
@SupabaseInternal
60-
override fun setLevel(level: LogLevel) {
61-
this.level = level
45+
class KermitSupabaseLogger(
46+
override val level: LogLevel?,
47+
tag: String,
48+
private val logger: Logger = Logger.withTag(tag)
49+
) : SupabaseLogger() {
50+
51+
init {
52+
logger.mutableConfig.minSeverity = (level ?: SupabaseClient.DEFAULT_LOG_LEVEL).toSeverity()
6253
}
6354

64-
override fun log(level: LogLevel, throwable: Throwable?, message: String) {
55+
override fun log(level: LogLevel, throwable: Throwable?, message: String) {
6556
logger.log(level.toSeverity(), logger.tag, throwable, message)
6657
}
6758

68-
private fun LogLevel.toSeverity() = when(this) {
59+
private fun LogLevel.toSeverity() = when (this) {
6960
LogLevel.DEBUG -> Severity.Debug
7061
LogLevel.INFO -> Severity.Info
7162
LogLevel.WARNING -> Severity.Warn

Supabase/src/commonMain/kotlin/io/github/jan/supabase/plugins/SupabasePluginProvider.kt

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -35,11 +35,4 @@ interface SupabasePluginProvider<Config, PluginInstance : SupabasePlugin<Config>
3535
*/
3636
fun create(supabaseClient: SupabaseClient, config: Config) : PluginInstance
3737

38-
/**
39-
* Updates the plugin's log level
40-
*/
41-
fun setLogLevel(level: LogLevel) {
42-
logger.setLevel(level)
43-
}
44-
4538
}

0 commit comments

Comments
 (0)