Spring Boot 2.0.5 - Activemq 5.14.0 与 gradle 的设置记录器有关
Spring Boot 2.0.5 - Activemq 5.14.0 issues with setup logger with gradle
将 activemq 添加到我的 build.gradle 后出现以下运行时错误。
compile("org.apache.activemq:activemq-all:5.14.0")
我尝试排除模块,但似乎并没有像我预期的那样排除 logback。请告知我可以做些什么来排除 logback。另外请注意,这是一个 kotlin 应用程序,但我认为这不相关。
compile("org.springframework.boot:spring-boot-starter-web:${springBootVersion}")
{
exclude module: "spring-boot-starter-logging"
exclude module: "logback-classic"
}
例外情况:
Exception in thread "main" java.lang.IllegalArgumentException: LoggerFactory is not a Logback LoggerContext but Logback is on the classpath. Either remove Logback or the competing implementation (class org.slf4j.impl.Log4jLoggerFactory loaded from file:/C:/Users/z037640/.gradle/caches/modules-2/files-2.1/org.apache.activemq/activemq-all/5.14.0/858a3bd95d20e7a8949006cdb50a7c362f8825ec/activemq-all-5.14.0.jar). If you are using WebLogic you will need to add 'org.slf4j' to prefer-application-packages in WEB-INF/weblogic.xml Object of class [org.slf4j.impl.Log4jLoggerFactory] must be an instance of class ch.qos.logback.classic.LoggerContext
如果你不想使用logback作为记录器,那么你只需要将它从所有配置中排除,如下:
configurations.all {
exclude group: "ch.qos.logback"
}
dependencies {
// ... all your dependencies here.
}
在您的 github 项目示例中:您在 buildscript
块中声明了排除规则,这是错误的。您需要在此块之外配置这些排除(=> 与 repositories
或 dependencies
块处于同一级别)
注意您的日志记录问题的根本原因是 spring-boot
和 active-mq-all
依赖项在其传递依赖项中提供了 Slf4j 绑定实现,因此您需要排除 logback
(参见上面的解决方案)或 active-mq
的实现(这看起来更复杂:参见 )
将 activemq 添加到我的 build.gradle 后出现以下运行时错误。
compile("org.apache.activemq:activemq-all:5.14.0")
我尝试排除模块,但似乎并没有像我预期的那样排除 logback。请告知我可以做些什么来排除 logback。另外请注意,这是一个 kotlin 应用程序,但我认为这不相关。
compile("org.springframework.boot:spring-boot-starter-web:${springBootVersion}")
{
exclude module: "spring-boot-starter-logging"
exclude module: "logback-classic"
}
例外情况:
Exception in thread "main" java.lang.IllegalArgumentException: LoggerFactory is not a Logback LoggerContext but Logback is on the classpath. Either remove Logback or the competing implementation (class org.slf4j.impl.Log4jLoggerFactory loaded from file:/C:/Users/z037640/.gradle/caches/modules-2/files-2.1/org.apache.activemq/activemq-all/5.14.0/858a3bd95d20e7a8949006cdb50a7c362f8825ec/activemq-all-5.14.0.jar). If you are using WebLogic you will need to add 'org.slf4j' to prefer-application-packages in WEB-INF/weblogic.xml Object of class [org.slf4j.impl.Log4jLoggerFactory] must be an instance of class ch.qos.logback.classic.LoggerContext
如果你不想使用logback作为记录器,那么你只需要将它从所有配置中排除,如下:
configurations.all {
exclude group: "ch.qos.logback"
}
dependencies {
// ... all your dependencies here.
}
在您的 github 项目示例中:您在 buildscript
块中声明了排除规则,这是错误的。您需要在此块之外配置这些排除(=> 与 repositories
或 dependencies
块处于同一级别)
注意您的日志记录问题的根本原因是 spring-boot
和 active-mq-all
依赖项在其传递依赖项中提供了 Slf4j 绑定实现,因此您需要排除 logback
(参见上面的解决方案)或 active-mq
的实现(这看起来更复杂:参见 )