feature #10: first implementation of logger

This commit is contained in:
2019-07-17 17:37:11 +02:00
parent 09c20fc385
commit 32127b7e19
4 changed files with 52 additions and 0 deletions

View File

@@ -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'

View File

@@ -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<PostgreSQLConnection>
private val serializer = Serializer()
private val logger: Logger? by LoggerDelegate()
fun connect(): ConnectionPool<PostgreSQLConnection> {
if (!::connection.isInitialized || !connection.isConnected()) {
@@ -132,6 +135,7 @@ class Connection(
select(sql, object: TypeReference<List<R>>() {}, values)
override fun exec(sql: String, values: List<Any?>): CompletableFuture<QueryResult> {
logger?.debug(sql, values)
return connect().sendPreparedStatement(sql, compileArgs(values))
}

View File

@@ -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<in R : Any> : ReadOnlyProperty<R, Logger> {
override fun getValue(thisRef: R, property: KProperty<*>)
= LoggerFactory.getLogger(thisRef.javaClass.packageName)
}

View File

@@ -0,0 +1,34 @@
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{YYYY-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<property name="LOG_DIR" value="./postgresjson" />
<appender name="query" class="ch.qos.logback.core.FileAppender">
<file>${LOG_DIR}/query.log</file>
<append>true</append>
<encoder>
<pattern>%d{YYYY-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{35} - %msg%n</pattern>
</encoder>
</appender>
<appender name="other" class="ch.qos.logback.core.FileAppender">
<file>${LOG_DIR}/other.log</file>
<append>true</append>
<encoder>
<pattern>%d{YYYY-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{35} - %msg%n</pattern>
</encoder>
</appender>
<root level="trace">
<appender-ref ref="STDOUT"/>
<appender-ref ref="other" />
</root>
<logger name="org.eclipse.jetty" level="INFO"/>
<logger name="io.netty" level="INFO"/>
<logger name="fr.postgresjson.connexion" level="trace">
<appender-ref ref="query" />
</logger>
</configuration>