Kotlin 1.5.10 - slf4j: Exception in thread "main" java.lang.NoSuchMethodError: 'org.apache.log4j.Level org.apache.log4j.Level.toLevel(java.lang.String, org.apache.log4j.Level)'

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 :thinking:

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