From 32127b7e19801085abd28d82b7c3bf898aa9f438 Mon Sep 17 00:00:00 2001 From: Fabrice Lecomte Date: Wed, 17 Jul 2019 17:37:11 +0200 Subject: [PATCH] feature #10: first implementation of logger --- build.gradle | 3 ++ .../fr/postgresjson/connexion/Connection.kt | 4 +++ .../fr/postgresjson/utils/LoggerDelegate.kt | 11 ++++++ src/test/resources/logback.xml | 34 +++++++++++++++++++ 4 files changed, 52 insertions(+) create mode 100644 src/main/kotlin/fr/postgresjson/utils/LoggerDelegate.kt create mode 100644 src/test/resources/logback.xml diff --git a/build.gradle b/build.gradle index 5571ea1..e3d0ccc 100644 --- a/build.gradle +++ b/build.gradle @@ -18,7 +18,10 @@ dependencies { implementation "org.jetbrains.kotlin:kotlin-reflect:1.3.31" implementation "com.fasterxml.jackson.module:jackson-module-kotlin:2.9.9" implementation "com.github.jasync-sql:jasync-postgresql:0.9.53" + implementation "org.slf4j:slf4j-api:1.7.26" + testImplementation "ch.qos.logback:logback-classic:1.2.3" + testImplementation "ch.qos.logback:logback-core:1.2.3" testImplementation "io.mockk:mockk:1.9" testImplementation "org.junit.jupiter:junit-jupiter:5.4.2" testImplementation 'org.amshove.kluent:kluent:1.47' diff --git a/src/main/kotlin/fr/postgresjson/connexion/Connection.kt b/src/main/kotlin/fr/postgresjson/connexion/Connection.kt index 07214e5..78d84b5 100644 --- a/src/main/kotlin/fr/postgresjson/connexion/Connection.kt +++ b/src/main/kotlin/fr/postgresjson/connexion/Connection.kt @@ -9,6 +9,8 @@ import com.github.jasync.sql.db.postgresql.PostgreSQLConnectionBuilder import com.github.jasync.sql.db.util.length import fr.postgresjson.entity.EntityI import fr.postgresjson.serializer.Serializer +import fr.postgresjson.utils.LoggerDelegate +import org.slf4j.Logger import java.util.concurrent.CompletableFuture @@ -31,6 +33,7 @@ class Connection( ): Executable { private lateinit var connection: ConnectionPool private val serializer = Serializer() + private val logger: Logger? by LoggerDelegate() fun connect(): ConnectionPool { if (!::connection.isInitialized || !connection.isConnected()) { @@ -132,6 +135,7 @@ class Connection( select(sql, object: TypeReference>() {}, values) override fun exec(sql: String, values: List): CompletableFuture { + logger?.debug(sql, values) return connect().sendPreparedStatement(sql, compileArgs(values)) } diff --git a/src/main/kotlin/fr/postgresjson/utils/LoggerDelegate.kt b/src/main/kotlin/fr/postgresjson/utils/LoggerDelegate.kt new file mode 100644 index 0000000..a17f510 --- /dev/null +++ b/src/main/kotlin/fr/postgresjson/utils/LoggerDelegate.kt @@ -0,0 +1,11 @@ +package fr.postgresjson.utils + +import org.slf4j.Logger +import org.slf4j.LoggerFactory +import kotlin.properties.ReadOnlyProperty +import kotlin.reflect.KProperty + +internal class LoggerDelegate : ReadOnlyProperty { + override fun getValue(thisRef: R, property: KProperty<*>) + = LoggerFactory.getLogger(thisRef.javaClass.packageName) +} \ No newline at end of file diff --git a/src/test/resources/logback.xml b/src/test/resources/logback.xml new file mode 100644 index 0000000..ca7a864 --- /dev/null +++ b/src/test/resources/logback.xml @@ -0,0 +1,34 @@ + + + + %d{YYYY-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n + + + + + ${LOG_DIR}/query.log + true + + %d{YYYY-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{35} - %msg%n + + + + ${LOG_DIR}/other.log + true + + %d{YYYY-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{35} - %msg%n + + + + + + + + + + + + + + + \ No newline at end of file