refactor: restructure logging package, separate into data, domain, and di modules
This commit is contained in:
@@ -41,6 +41,10 @@ kotlin {
|
||||
commonMain.dependencies {
|
||||
// Logging
|
||||
implementation(libs.kermit)
|
||||
|
||||
// DI
|
||||
implementation(project.dependencies.platform(libs.koin.bom))
|
||||
implementation(libs.koin.core)
|
||||
}
|
||||
commonTest.dependencies {
|
||||
implementation(libs.kotlin.test)
|
||||
|
||||
@@ -1,26 +0,0 @@
|
||||
package fr.ajaury.gwenedeg.core.logging
|
||||
|
||||
import co.touchlab.kermit.Logger as Kermit
|
||||
|
||||
/**
|
||||
* Kermit-backed implementation (adapter) of the [Logger] port.
|
||||
*/
|
||||
class KermitLogger(
|
||||
private val tag: String = "Gwenedeg",
|
||||
) : Logger {
|
||||
override fun debug(message: String, throwable: Throwable?) {
|
||||
Kermit.d(throwable = throwable, tag = tag) { message }
|
||||
}
|
||||
|
||||
override fun info(message: String, throwable: Throwable?) {
|
||||
Kermit.i(throwable = throwable, tag = tag) { message }
|
||||
}
|
||||
|
||||
override fun warning(message: String, throwable: Throwable?) {
|
||||
Kermit.w(throwable = throwable, tag = tag) { message }
|
||||
}
|
||||
|
||||
override fun error(message: String, throwable: Throwable?) {
|
||||
Kermit.e(throwable = throwable, tag = tag) { message }
|
||||
}
|
||||
}
|
||||
+39
@@ -0,0 +1,39 @@
|
||||
package fr.ajaury.gwenedeg.core.logging.data
|
||||
|
||||
import fr.ajaury.gwenedeg.core.logging.domain.Logger
|
||||
|
||||
internal class KermitLogger(
|
||||
private val tag: String = "Gwenedeg",
|
||||
) : Logger {
|
||||
override fun debug(
|
||||
message: String,
|
||||
throwable: Throwable?,
|
||||
) {
|
||||
co.touchlab.kermit.Logger
|
||||
.d(throwable = throwable, tag = tag) { message }
|
||||
}
|
||||
|
||||
override fun info(
|
||||
message: String,
|
||||
throwable: Throwable?,
|
||||
) {
|
||||
co.touchlab.kermit.Logger
|
||||
.i(throwable = throwable, tag = tag) { message }
|
||||
}
|
||||
|
||||
override fun warning(
|
||||
message: String,
|
||||
throwable: Throwable?,
|
||||
) {
|
||||
co.touchlab.kermit.Logger
|
||||
.w(throwable = throwable, tag = tag) { message }
|
||||
}
|
||||
|
||||
override fun error(
|
||||
message: String,
|
||||
throwable: Throwable?,
|
||||
) {
|
||||
co.touchlab.kermit.Logger
|
||||
.e(throwable = throwable, tag = tag) { message }
|
||||
}
|
||||
}
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
package fr.ajaury.gwenedeg.core.logging.di
|
||||
|
||||
import fr.ajaury.gwenedeg.core.logging.data.KermitLogger
|
||||
import fr.ajaury.gwenedeg.core.logging.domain.Logger
|
||||
import org.koin.core.module.Module
|
||||
import org.koin.dsl.module
|
||||
|
||||
val loggingModule: Module = module {
|
||||
single<Logger> { KermitLogger() }
|
||||
}
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package fr.ajaury.gwenedeg.core.logging
|
||||
package fr.ajaury.gwenedeg.core.logging.domain
|
||||
|
||||
/**
|
||||
* Logging abstraction so the rest of the app depends on this interface
|
||||
Reference in New Issue
Block a user