@@ -2,7 +2,10 @@ package io.github.jan.supabase.logging
2
2
3
3
import co.touchlab.kermit.Logger
4
4
import co.touchlab.kermit.Severity
5
+ import co.touchlab.kermit.loggerConfigInit
6
+ import co.touchlab.kermit.platformLogWriter
5
7
import io.github.jan.supabase.SupabaseClient
8
+ import io.github.jan.supabase.annotations.SupabaseInternal
6
9
7
10
/* *
8
11
* An interface for logging in Supabase plugins.
@@ -34,23 +37,32 @@ abstract class SupabaseLogger {
34
37
}
35
38
}
36
39
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
+
37
47
}
38
48
39
49
/* *
40
50
* A logger implementation using the Kermit logger.
41
51
* @param level The minimum log level for this logger.
42
52
* @param tag The tag for this logger
43
- * @param logger The Kermit logger
44
53
*/
45
54
internal class KermitSupabaseLogger (
46
- override val level : LogLevel ,
55
+ initialLevel : LogLevel ,
47
56
tag : String ,
48
- private val logger : Logger = Logger .withTag(tag)
49
57
) : SupabaseLogger() {
50
58
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
+ )
54
66
55
67
override fun log (level : LogLevel , throwable : Throwable ? , message : String ) {
56
68
logger.log(level.toSeverity(), logger.tag, throwable, message)
@@ -64,6 +76,12 @@ internal class KermitSupabaseLogger(
64
76
LogLevel .NONE -> Severity .Assert
65
77
}
66
78
79
+ @SupabaseInternal
80
+ override fun setLevel (level : LogLevel ) {
81
+ this .level = level
82
+ logger.mutableConfig.minSeverity = level.toSeverity()
83
+ }
84
+
67
85
}
68
86
69
87
/* *
0 commit comments