Проблема совместимости в приложении Log4j Appender для Java-приложения с весенней загрузкой.JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Проблема совместимости в приложении Log4j Appender для Java-приложения с весенней загрузкой.

Сообщение Anonymous »

Я новичок в Java и пытаюсь настроить Logback с помощью Java-приложения Spring Boot.
Получение этого исключения при использовании logback.xml с Java-приложением Spring Boot:

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

Correct the classpath of your application so that it contains
compatible versions of the classes
com.github.loki4j.logback.Loki4jAppender and
ch.qos.logback.classic.spi.ILoggingEvent
Мы используем REST-контроллер Spring Boot Java API и пытаемся передать все журналы в потоковом режиме с помощью Loki.
Подробности среды:
  • Версия Java: 17
  • Версия Spring Boot: 2.7.14

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

pom.xmlфрагмент 
:

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

org.slf4j
slf4j-api



org.apache.logging.log4j
log4j-slf4j2-impl
2.24.3





com.github.loki4j
loki-logback-appender
1.6.0

Фрагмент кода:

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

private static final Logger LOG = LoggerFactory.getLogger(CloudController.class);
LOG.info("/tenant/add" + clustername + " " + url + " " + region  );
При запуске файла JAR выдается следующее исключение:

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

2025-01-03 23:28:22.319  INFO 218845 --- [           main]
o.k.c.s.swaggerui.SwaggerUiApplication   : Starting
SwaggerUiApplication v0.0.1-SNAPSHOT using Java 17.0.13 on CS
with PID 218845
(/mnt/c/Automation/oe-platform/cloudcontroller/target/swagger-ui-0.0.1-SNAPSHOT.jar
started by root in
/mnt/c/Automation/oe-platform/cloudcontroller/target) 2025-01-03
23:28:22.703 ERROR 218845 --- [           main]
o.s.b.d.LoggingFailureAnalysisReporter   :

*************************** APPLICATION FAILED TO START
***************************

Description:

An attempt was made to call a method that does not exist.  The attempt
was made from the following location:

com.github.loki4j.logback.Loki4jAppender.append(Loki4jAppender.java:198)

The following method did not exist:

'int ch.qos.logback.classic.spi.ILoggingEvent.getNanoseconds()'

The calling method's class, com.github.loki4j.logback.Loki4jAppender,
was loaded from the following location:

jar:file:/mnt/c/Automation/oe-platform/cloudcontroller/target/swagger-ui-0.0.1-SNAPSHOT.jar!/BOOT-INF/lib/loki-logback-appender-1.6.0.jar!/com/github/loki4j/logback/Loki4jAppender.class

The called method's class, ch.qos.logback.classic.spi.ILoggingEvent,
is available from the following locations:

jar:file:/mnt/c/Automation/oe-platform/cloudcontroller/target/swagger-ui-0.0.1-SNAPSHOT.jar!/BOOT-INF/lib/logback-classic-1.2.12.jar!/ch/qos/logback/classic/spi/ILoggingEvent.class

The called method's class hierarchy was loaded from the following
locations:

ch.qos.logback.classic.spi.ILoggingEvent: jar:file:/mnt/c/Automation/oe-platform/cloudcontroller/target/swagger-ui-0.0.1-SNAPSHOT.jar!/BOOT-INF/lib/logback-classic-1.2.12.jar!/

Action:

Correct the classpath of your application so that it contains
compatible versions of the classes
com.github.loki4j.logback.Loki4jAppender and
ch.qos.logback.classic.spi.ILoggingEvent

2025-01-03 23:28:22.706 ERROR 218845 --- [           main]
o.s.boot.SpringApplication               : Application run failed

java.lang.NoSuchMethodError: 'int
ch.qos.logback.classic.spi.ILoggingEvent.getNanoseconds()'
at com.github.loki4j.logback.Loki4jAppender.append(Loki4jAppender.java:198)
at com.github.loki4j.logback.Loki4jAppender.append(Loki4jAppender.java:16)
at ch.qos.logback.core.UnsynchronizedAppenderBase.doAppend(UnsynchronizedAppenderBase.java:84)
at ch.qos.logback.core.spi.AppenderAttachableImpl.appendLoopOnAppenders(AppenderAttachableImpl.java:51)
at ch.qos.logback.classic.Logger.appendLoopOnAppenders(Logger.java:270)
at ch.qos.logback.classic.Logger.callAppenders(Logger.java:257)
at ch.qos.logback.classic.Logger.buildLoggingEventAndAppend(Logger.java:421)
at ch.qos.logback.classic.Logger.filterAndLog_0_Or3Plus(Logger.java:383)
at ch.qos.logback.classic.Logger.log(Logger.java:765)
at org.apache.commons.logging.LogAdapter$Slf4jLocationAwareLog.info(LogAdapter.java:454)
at org.springframework.boot.StartupInfoLogger.logStarting(StartupInfoLogger.java:55)
at org.springframework.boot.SpringApplication.logStartupInfo(SpringApplication.java:615)
at org.springframework.boot.SpringApplication.prepareContext(SpringApplication.java:377)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:306)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1303)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1292)
at oe.kubeapi.cloudcontroller.swagger.swaggerui.SwaggerUiApplication.main(SwaggerUiApplication.java:14)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:569)
at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:49)
at org.springframework.boot.loader.Launcher.launch(Launcher.java:108)
at org.springframework.boot.loader.Launcher.launch(Launcher.java:58)
at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:65)

Exception in thread "main"  java.lang.reflect.InvocationTargetException
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:569)
at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:49)
at org.springframework.boot.loader.Launcher.launch(Launcher.java:108)
at org.springframework.boot.loader.Launcher.launch(Launcher.java:58)
at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:65)
Caused by: java.lang.NoSuchMethodError: 'int
ch.qos.logback.classic.spi.ILoggingEvent.getNanoseconds()'
at com.github.loki4j.logback.Loki4jAppender.append(Loki4jAppender.java:198)
at com.github.loki4j.logback.Loki4jAppender.append(Loki4jAppender.java:16)
at ch.qos.logback.core.UnsynchronizedAppenderBase.doAppend(UnsynchronizedAppenderBase.java:84)
at ch.qos.logback.core.spi.AppenderAttachableImpl.appendLoopOnAppenders(AppenderAttachableImpl.java:51)
at ch.qos.logback.classic.Logger.appendLoopOnAppenders(Logger.java:270)
at ch.qos.logback.classic.Logger.callAppenders(Logger.java:257)
at ch.qos.logback.classic.Logger.buildLoggingEventAndAppend(Logger.java:421)
at ch.qos.logback.classic.Logger.filterAndLog_0_Or3Plus(Logger.java:383)
at ch.qos.logback.classic.Logger.log(Logger.java:765)
at org.apache.commons.logging.LogAdapter$Slf4jLocationAwareLog.error(LogAdapter.java:433)
at org.springframework.boot.SpringApplication.reportFailure(SpringApplication.java:821)
at org.springframework.boot.SpringApplication.handleRunFailure(SpringApplication.java:785)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:317)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1303)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1292)

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

logback.xml
файл:

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






http://a6629f018a6da4430852fbfc7db64d91-1818106300.us-east-1.elb.amazonaws.com:32730/loki/api/v1/push



app=${name},host=${HOSTNAME},level=%level
true



{
"level":"%level",
"class":"%logger{36}",
"thread":"%thread",
"message": "%message",
"requestId": 100
}









Почему возникают проблемы с совместимостью?


Подробнее здесь: https://stackoverflow.com/questions/793 ... pplication
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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