I would like to add Kotlin with JDBC to the OraBench project. OraBench is supposed to be a benchmark framework for Oracle database drivers.
I have now a problem with logging.I also have to admit that I am not a big expert in Kotlin. It would be great if one of the more experienced colleagues could help me with my problem.
I’m aware of the following topic: https://discuss.kotlinlang.org/t/log4j-and-kotlin-compiler-1-3-11-jar-java-lang-nosuchmethoderror-org-apache-log4j-level-tolevel/11186 but it doesn’t help
2021-05-30 14:29:47,077 [OraBench.java] INFO End OraBench.java
Exception in thread "main" java.lang.NoSuchMethodError: 'org.apache.log4j.Level org.apache.log4j.Level.toLevel(java.lang.String, org.apache.log4j.Level)'
at org.apache.log4j.helpers.OptionConverter.toLevel(OptionConverter.java:198)
at org.apache.log4j.PropertyConfigurator.parseCategory(PropertyConfigurator.java:753)
at org.apache.log4j.PropertyConfigurator.configureRootCategory(PropertyConfigurator.java:648)
at org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:514)
at org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:580)
at org.apache.log4j.helpers.OptionConverter.selectAndConfigure(OptionConverter.java:526)
at org.apache.log4j.LogManager.<clinit>(LogManager.java:127)
at org.apache.log4j.Logger.getLogger(Logger.java:117)
at ch.konnexions.OraBench.<init>(OraBench.kt:25)
at ch.konnexions.OraBenchKt.main(OraBench.kt:973)
build.gradle.kts:
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
plugins {
id("org.jetbrains.dokka") version "1.4.32"
kotlin("jvm") version "1.5.10"
application
}
group = "ch.konnexions"
application {
mainClass.set("OraBenchKt")
}
repositories {
mavenCentral()
}
dependencies {
dokkaHtmlPlugin("org.jetbrains.dokka:kotlin-as-java-plugin:1.4.32")
implementation("com.oracle.database.jdbc:ojdbc11:21.1.0.0")
implementation("org.apache.commons:commons-csv:1.8")
implementation("org.jetbrains.dokka:kotlin-as-java-plugin:1.4.32")
implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.5.10")
implementation("org.slf4j:slf4j-log4j12:1.7.30")
implementation(platform("org.jetbrains.kotlin:kotlin-bom:1.5.10"))
}
val jar by tasks.getting(Jar::class) {
duplicatesStrategy = DuplicatesStrategy.INCLUDE
isZip64 = true
manifest {
attributes["Main-Class"] = "ch.konnexions.OraBenchKt"
}
from(configurations.runtimeClasspath.get().map { if (it.isDirectory) it else zipTree(it) }) {
exclude("META-INF/*.DSA")
exclude("META-INF/*.RSA")
exclude("META-INF/*.SF")
}
}
More details can be found here: https://github.com/KonnexionsGmbH/ora_bench/tree/wwe_2021_05