From 68f8f4cb0e7069164253600b47c2ea3260a43027 Mon Sep 17 00:00:00 2001 From: Oleg Koretsky Date: Thu, 7 Aug 2025 23:05:44 +0300 Subject: [PATCH 1/7] Do not modify global Kermit severity --- CHANGELOG.md | 4 +++ .../kotlin/com/powersync/utils/Log.kt | 27 +++++++++---------- 2 files changed, 16 insertions(+), 15 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9f8c327d..2ab91071 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## Unreleased + +* Fixed modifying severity of the global Kermit logger + ## 1.4.0 * Added the ability to log PowerSync service HTTP request information via specifying a diff --git a/core/src/commonMain/kotlin/com/powersync/utils/Log.kt b/core/src/commonMain/kotlin/com/powersync/utils/Log.kt index 53a1eb4e..14e7eb48 100644 --- a/core/src/commonMain/kotlin/com/powersync/utils/Log.kt +++ b/core/src/commonMain/kotlin/com/powersync/utils/Log.kt @@ -1,24 +1,21 @@ package com.powersync.utils -import co.touchlab.kermit.Logger -import co.touchlab.kermit.Severity +import BuildConfig +import co.touchlab.kermit.* /* * Generates a logger with the appropriate severity level based on the build type * if no Logger is provided. */ public fun generateLogger(logger: Logger?): Logger { - if (logger != null) { - return logger - } - - val defaultLogger: Logger = Logger - - if (BuildConfig.isDebug) { - Logger.setMinSeverity(Severity.Verbose) - } else { - Logger.setMinSeverity(Severity.Warn) - } - - return defaultLogger + return logger + ?: Logger( + config = StaticConfig( + logWriterList = listOf(platformLogWriter()), + minSeverity = if (BuildConfig.isDebug) + Severity.Verbose + else + Severity.Warn + ), + ) } From 53739f7ba8b99b46621b7e0f29fe6d969a08c6b3 Mon Sep 17 00:00:00 2001 From: Oleg Koretsky Date: Thu, 7 Aug 2025 23:08:31 +0300 Subject: [PATCH 2/7] Add 'PowerSync' tag for the logs --- CHANGELOG.md | 1 + core/src/commonMain/kotlin/com/powersync/utils/Log.kt | 1 + 2 files changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2ab91071..38f831c9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,7 @@ ## Unreleased * Fixed modifying severity of the global Kermit logger +* Added `PowerSync` tag for the logs ## 1.4.0 diff --git a/core/src/commonMain/kotlin/com/powersync/utils/Log.kt b/core/src/commonMain/kotlin/com/powersync/utils/Log.kt index 14e7eb48..e6703a24 100644 --- a/core/src/commonMain/kotlin/com/powersync/utils/Log.kt +++ b/core/src/commonMain/kotlin/com/powersync/utils/Log.kt @@ -17,5 +17,6 @@ public fun generateLogger(logger: Logger?): Logger { else Severity.Warn ), + tag = "PowerSync", ) } From 535f107a0be361d5be3ddb0acb89b65ebd7d7974 Mon Sep 17 00:00:00 2001 From: Oleg Koretsky Date: Thu, 7 Aug 2025 23:11:57 +0300 Subject: [PATCH 3/7] Get rid of generateLogger() --- CHANGELOG.md | 1 + .../com/powersync/PowerSyncDatabaseFactory.kt | 24 +++++++++++++------ .../kotlin/com/powersync/utils/Log.kt | 22 ----------------- 3 files changed, 18 insertions(+), 29 deletions(-) delete mode 100644 core/src/commonMain/kotlin/com/powersync/utils/Log.kt diff --git a/CHANGELOG.md b/CHANGELOG.md index 38f831c9..ce90288b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,7 @@ * Fixed modifying severity of the global Kermit logger * Added `PowerSync` tag for the logs +* Removed `generateLogger()` global public method meant to be used internally ## 1.4.0 diff --git a/core/src/commonMain/kotlin/com/powersync/PowerSyncDatabaseFactory.kt b/core/src/commonMain/kotlin/com/powersync/PowerSyncDatabaseFactory.kt index bd6fc453..7e44dfc5 100644 --- a/core/src/commonMain/kotlin/com/powersync/PowerSyncDatabaseFactory.kt +++ b/core/src/commonMain/kotlin/com/powersync/PowerSyncDatabaseFactory.kt @@ -1,10 +1,13 @@ package com.powersync +import BuildConfig import co.touchlab.kermit.Logger +import co.touchlab.kermit.Severity +import co.touchlab.kermit.StaticConfig +import co.touchlab.kermit.platformLogWriter import co.touchlab.skie.configuration.annotations.DefaultArgumentInterop import com.powersync.db.PowerSyncDatabaseImpl import com.powersync.db.schema.Schema -import com.powersync.utils.generateLogger import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.DelicateCoroutinesApi import kotlinx.coroutines.GlobalScope @@ -27,18 +30,25 @@ public fun PowerSyncDatabase( * This parameter is ignored for iOS. */ dbDirectory: String? = null, -): PowerSyncDatabase { - val generatedLogger: Logger = generateLogger(logger) - - return createPowerSyncDatabaseImpl( +): PowerSyncDatabase = + createPowerSyncDatabaseImpl( schema = schema, factory = factory, dbFilename = dbFilename, scope = scope, - logger = generatedLogger, + logger = logger + ?: Logger( + config = StaticConfig( + logWriterList = listOf(platformLogWriter()), + minSeverity = if (BuildConfig.isDebug) + Severity.Verbose + else + Severity.Warn + ), + tag = "PowerSync", + ), dbDirectory = dbDirectory, ) -} internal fun createPowerSyncDatabaseImpl( factory: DatabaseDriverFactory, diff --git a/core/src/commonMain/kotlin/com/powersync/utils/Log.kt b/core/src/commonMain/kotlin/com/powersync/utils/Log.kt deleted file mode 100644 index e6703a24..00000000 --- a/core/src/commonMain/kotlin/com/powersync/utils/Log.kt +++ /dev/null @@ -1,22 +0,0 @@ -package com.powersync.utils - -import BuildConfig -import co.touchlab.kermit.* - -/* - * Generates a logger with the appropriate severity level based on the build type - * if no Logger is provided. -*/ -public fun generateLogger(logger: Logger?): Logger { - return logger - ?: Logger( - config = StaticConfig( - logWriterList = listOf(platformLogWriter()), - minSeverity = if (BuildConfig.isDebug) - Severity.Verbose - else - Severity.Warn - ), - tag = "PowerSync", - ) -} From 95f01c1c75f78125b3b37c00cba087c40830b6e1 Mon Sep 17 00:00:00 2001 From: Oleg Koretsky Date: Thu, 7 Aug 2025 23:33:32 +0300 Subject: [PATCH 4/7] Fix lint issues --- .../kotlin/com/powersync/PowerSyncDatabaseFactory.kt | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/core/src/commonMain/kotlin/com/powersync/PowerSyncDatabaseFactory.kt b/core/src/commonMain/kotlin/com/powersync/PowerSyncDatabaseFactory.kt index 7e44dfc5..51b28ffd 100644 --- a/core/src/commonMain/kotlin/com/powersync/PowerSyncDatabaseFactory.kt +++ b/core/src/commonMain/kotlin/com/powersync/PowerSyncDatabaseFactory.kt @@ -36,14 +36,17 @@ public fun PowerSyncDatabase( factory = factory, dbFilename = dbFilename, scope = scope, - logger = logger + logger = + logger ?: Logger( config = StaticConfig( - logWriterList = listOf(platformLogWriter()), - minSeverity = if (BuildConfig.isDebug) + logWriterList = + listOf(platformLogWriter()), + minSeverity = + if (BuildConfig.isDebug) Severity.Verbose else - Severity.Warn + Severity.Warn, ), tag = "PowerSync", ), From 287a3370b4305c268d53c13c1fada5f1f7b0d7b2 Mon Sep 17 00:00:00 2001 From: Simon Binder Date: Thu, 14 Aug 2025 10:04:21 +0200 Subject: [PATCH 5/7] Apply format --- .../com/powersync/PowerSyncDatabaseFactory.kt | 26 ++++++++++--------- 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/core/src/commonMain/kotlin/com/powersync/PowerSyncDatabaseFactory.kt b/core/src/commonMain/kotlin/com/powersync/PowerSyncDatabaseFactory.kt index 51b28ffd..207766c8 100644 --- a/core/src/commonMain/kotlin/com/powersync/PowerSyncDatabaseFactory.kt +++ b/core/src/commonMain/kotlin/com/powersync/PowerSyncDatabaseFactory.kt @@ -37,19 +37,21 @@ public fun PowerSyncDatabase( dbFilename = dbFilename, scope = scope, logger = - logger - ?: Logger( - config = StaticConfig( - logWriterList = - listOf(platformLogWriter()), - minSeverity = - if (BuildConfig.isDebug) - Severity.Verbose - else - Severity.Warn, + logger + ?: Logger( + config = + StaticConfig( + logWriterList = + listOf(platformLogWriter()), + minSeverity = + if (BuildConfig.isDebug) { + Severity.Verbose + } else { + Severity.Warn + }, + ), + tag = "PowerSync", ), - tag = "PowerSync", - ), dbDirectory = dbDirectory, ) From 14dfd40bbf88302023dbaca80ea20c9e231b8d39 Mon Sep 17 00:00:00 2001 From: Oleg Koretsky Date: Sun, 17 Aug 2025 20:13:57 +0300 Subject: [PATCH 6/7] Revert "Get rid of generateLogger()" This reverts commit 826e7a33ab252d2f55c444f9edeee0fc30bd2863. --- CHANGELOG.md | 1 - .../com/powersync/PowerSyncDatabaseFactory.kt | 29 +++++-------------- .../kotlin/com/powersync/utils/Log.kt | 25 ++++++++++++++++ 3 files changed, 32 insertions(+), 23 deletions(-) create mode 100644 core/src/commonMain/kotlin/com/powersync/utils/Log.kt diff --git a/CHANGELOG.md b/CHANGELOG.md index ce90288b..38f831c9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,7 +4,6 @@ * Fixed modifying severity of the global Kermit logger * Added `PowerSync` tag for the logs -* Removed `generateLogger()` global public method meant to be used internally ## 1.4.0 diff --git a/core/src/commonMain/kotlin/com/powersync/PowerSyncDatabaseFactory.kt b/core/src/commonMain/kotlin/com/powersync/PowerSyncDatabaseFactory.kt index 207766c8..bd6fc453 100644 --- a/core/src/commonMain/kotlin/com/powersync/PowerSyncDatabaseFactory.kt +++ b/core/src/commonMain/kotlin/com/powersync/PowerSyncDatabaseFactory.kt @@ -1,13 +1,10 @@ package com.powersync -import BuildConfig import co.touchlab.kermit.Logger -import co.touchlab.kermit.Severity -import co.touchlab.kermit.StaticConfig -import co.touchlab.kermit.platformLogWriter import co.touchlab.skie.configuration.annotations.DefaultArgumentInterop import com.powersync.db.PowerSyncDatabaseImpl import com.powersync.db.schema.Schema +import com.powersync.utils.generateLogger import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.DelicateCoroutinesApi import kotlinx.coroutines.GlobalScope @@ -30,30 +27,18 @@ public fun PowerSyncDatabase( * This parameter is ignored for iOS. */ dbDirectory: String? = null, -): PowerSyncDatabase = - createPowerSyncDatabaseImpl( +): PowerSyncDatabase { + val generatedLogger: Logger = generateLogger(logger) + + return createPowerSyncDatabaseImpl( schema = schema, factory = factory, dbFilename = dbFilename, scope = scope, - logger = - logger - ?: Logger( - config = - StaticConfig( - logWriterList = - listOf(platformLogWriter()), - minSeverity = - if (BuildConfig.isDebug) { - Severity.Verbose - } else { - Severity.Warn - }, - ), - tag = "PowerSync", - ), + logger = generatedLogger, dbDirectory = dbDirectory, ) +} internal fun createPowerSyncDatabaseImpl( factory: DatabaseDriverFactory, diff --git a/core/src/commonMain/kotlin/com/powersync/utils/Log.kt b/core/src/commonMain/kotlin/com/powersync/utils/Log.kt new file mode 100644 index 00000000..3efd67b7 --- /dev/null +++ b/core/src/commonMain/kotlin/com/powersync/utils/Log.kt @@ -0,0 +1,25 @@ +package com.powersync.utils + +import BuildConfig +import co.touchlab.kermit.* + +/* + * Generates a logger with the appropriate severity level based on the build type + * if no Logger is provided. +*/ +public fun generateLogger(logger: Logger?): Logger = + logger + ?: Logger( + config = + StaticConfig( + logWriterList = + listOf(platformLogWriter()), + minSeverity = + if (BuildConfig.isDebug) { + Severity.Verbose + } else { + Severity.Warn + }, + ), + tag = "PowerSync", + ) From fe1eaea7e88a978a1033eb77c9612f2f94c3f93d Mon Sep 17 00:00:00 2001 From: stevensJourney <51082125+stevensJourney@users.noreply.github.com> Date: Mon, 18 Aug 2025 09:16:22 +0200 Subject: [PATCH 7/7] Update core/src/commonMain/kotlin/com/powersync/utils/Log.kt --- core/src/commonMain/kotlin/com/powersync/utils/Log.kt | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/core/src/commonMain/kotlin/com/powersync/utils/Log.kt b/core/src/commonMain/kotlin/com/powersync/utils/Log.kt index 3efd67b7..addf36df 100644 --- a/core/src/commonMain/kotlin/com/powersync/utils/Log.kt +++ b/core/src/commonMain/kotlin/com/powersync/utils/Log.kt @@ -1,7 +1,10 @@ package com.powersync.utils import BuildConfig -import co.touchlab.kermit.* +import co.touchlab.kermit.Logger +import co.touchlab.kermit.Severity +import co.touchlab.kermit.StaticConfig +import co.touchlab.kermit.platformLogWriter /* * Generates a logger with the appropriate severity level based on the build type