Как использовать JsonLayout в log4j с платформой Play 3? Ошибка: не удалось создать плагин класса типа JsonLayout: NoClaJAVA

Программисты JAVA общаются здесь
Anonymous
Как использовать JsonLayout в log4j с платформой Play 3? Ошибка: не удалось создать плагин класса типа JsonLayout: NoCla

Сообщение Anonymous »

Я пытаюсь использовать функцию JsonLayout платформы ведения журналов Apache Log4j с самой последней версией Play Framework — 3.0.5. В log4j2.xml я объявляю это так: Когда я запускаю приложение с помощью sbt run, я получаю следующую ошибку:

ОШИБКА ВОЗМОЖНА не создавать плагин класса типа org.apache.logging.log4j.core.layout.JsonLayout для элемента JsonLayout: java.lang.NoClassDefFoundError: com/fasterxml/jackson/databind/ser/FilterProvider java.lang.NoClassDefFoundError: com/fasterxml/ jackson/databind/ser/FilterProvider

Сообщение странное, поскольку класс com/fasterxml/jackson/databind/ser/FilterProvider существует в jackson-databind, который включен в проект (в build.sbt).
Что я могу сделать, чтобы использовать JsonLayout в log4j с Play Framework 3.0.5?

Вот мой build.sbt:

Код: Выделить всё

name := """2024-09-play-and-log4j"""

version := "1.0-SNAPSHOT"

javaOptions += "-Dlog4j.configurationFile=conf/log4j2.xml"

lazy val root = (project in file("."))
.enablePlugins(PlayJava)
.disablePlugins(PlayLogback)

scalaVersion := "2.13.14"

libraryDependencies += guice

libraryDependencies ++= Seq(
"com.fasterxml.jackson.core" % "jackson-databind" % "2.14.3",
"org.apache.logging.log4j" % "log4j-core" % "2.23.1",
)
Я создал минимальный проект, чтобы продемонстрировать ошибку. Он доступен на GitHub: https://github.com/arekrob/2024-09-play-and-log4j.

Подробнее здесь: https://stackoverflow.com/questions/789 ... not-create

Вернуться в «JAVA»