我正在使用版本1.5.x版本(尝试1.5.10,1.5.2和1.5.1)在spring boot + gradle中开发应用程序。 boot使用的log4j版本是2.7
一切正常但我需要使用Socket Appender将日志发送到另一台主机。该主机使用log4j版本2.4
当我尝试启动我的应用时,我收到以下错误:
Caused by: java.lang.NoSuchMethodError: org.apache.logging.log4j.core.config.ConfigurationFactory.getConfiguration(Lorg/apache/logging/log4j/core/LoggerContext;Lorg/apache/logging/log4j/core/config/ConfigurationSource;)Lorg/apache/logging/log4j/core/config/Configuration;
我在gradle中排除了spring-starter-logging
configurations {
// Replace "spring-boot-starter-logging" with log4j
compile.exclude module: 'spring-boot-starter-logging'
compile.exclude group: 'log4j', module: 'log4j'
compile.exclude group: 'org.slf4j', module: 'slf4j-log4j12'
}
我在服务器端获得的默认log4j verison的例外是:
2018-02-07 16:03:59,344 [ Thread-4] ERROR org.apache.logging.log4j.core.net.server.TcpSocketServer.9001 [] [env=;ses=;pag=;req=] - IOException encountered while reading from socket
java.io.InvalidClassException: org.apache.logging.log4j.core.impl.Log4jLogEvent$LogEventProxy; local class incompatible: stream classdesc serialVersionUID = -8634075037355293699, local class serialVersionUID = -7139032940312647146
如果有人有任何线索,那将非常有帮助。