Конфигурация Log4j2 не найдена с Intellij и Kotlin - PullRequest
0 голосов
/ 24 сентября 2018

Я создал свежий проект IntelliJ с Gradle и сценарием сборки Kotlin DSL, только Kotlin (Java) и java версии 10.0.2 в качестве SDK проекта.

Я добавил зависимости для log4j в build.gradle.kts:

compile("org.apache.logging.log4j:log4j-api:2.11.1")
compile("org.apache.logging.log4j:log4j-core:2.11.1")

И я поместил файл log4j2.yaml в / src / main / resources с некоторой конфигурацией.

Когда я сейчас запускаю эту тестовую программу:

import org.apache.logging.log4j.LogManager

fun main(args: Array<String>) {
    val logger = LogManager.getLogger()!!

    logger.warn("Warn")
    logger.info("Info")
    logger.debug("Debug")
}

Я не получаю вывод журнала, но это сообщение

ERROR StatusLogger No Log4j 2 configuration file found. Using default configuration (logging only errors to the console), or user programmatically provided configurations. Set system property 'log4j2.debug' to show Log4j 2 internal initialization logging. See https://logging.apache.org/log4j/2.x/manual/configuration.html for instructions on how to configure Log4j 2

Как мне заставить log4j2 работать?

Вот что я сделал до сих пор:

  • Я проверил, что конфигурация log4j2 скопирована в каталог сборки и включена в classpath
  • Я успешно прочитал файл ресурса через classloader.getResource("log4j2.yaml");
  • Я пыталсяXML-файл конфигурации вместо

1 Ответ

0 голосов
/ 24 сентября 2018

Оказывается, что этих зависимостей недостаточно, если вы хотите использовать файлы конфигурации YAML.Кроме того, они необходимы:

compile("com.fasterxml.jackson.core:jackson-databind:2.9.4")
compile("com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.9.4")

После включения этих требований в build.gradle.kts регистрация работала как ожидалось.

...