嵌入式代理假定 Logback 是 SL4J 绑定

Posted

技术标签:

【中文标题】嵌入式代理假定 Logback 是 SL4J 绑定【英文标题】:Embedded broker assumes Logback is SL4J binding 【发布时间】:2017-12-03 03:57:28 【问题描述】:

我对 QPid 很陌生,所以请耐心等待。启动嵌入式浏览器进行一些集成测试,我在org.apache.qpid.server.Broker.startup(BrokerOptions) 中遇到了这一行:

ch.qos.logback.classic.Logger logger =
                (ch.qos.logback.classic.Logger) LoggerFactory.getLogger(Logger.ROOT_LOGGER_NAME);

它会抛出一个ClassCastException,因为它假定我正在使用 Logback,但我不是也不能。

谁能告诉我如何解决这个问题?

【问题讨论】:

你用的是什么版本? 看起来在 6.1.0 github.com/apache/qpid-broker-j/tree/6.1.0/broker-core/src/main/…987654321@ 从 6.1.3 降级到 6.0.7 唉,这并没有改善问题,因为LoggerFactory.getLogger() 不是ch.qos.logback.classic.Logger 并引发ClassCastException 我在 6.1.3 中找不到 org.apache.qpid.server.Broker 类。你不是已经在使用 6.1 之前的版本了吗?你到底包括了什么? 【参考方案1】:

这个错误似乎在 6.1.x 中仍然存在。 (https://github.com/apache/qpid-broker-j/blob/6.1.x/broker/src/main/java/org/apache/qpid/server/Broker.java

这实际上阻止了通过https://github.com/daknin/qpid-maven-plugin 启动代理。 (

【讨论】:

以上是关于嵌入式代理假定 Logback 是 SL4J 绑定的主要内容,如果未能解决你的问题,请参考以下文章

Java日志框架 -- SLF4J日志门面(入门案例SLF4J优点SLF4J日志绑定SL4J桥接旧的日志框架)

Java日志框架 -- SLF4J日志门面(入门案例SLF4J优点SLF4J日志绑定SL4J桥接旧的日志框架)

SpringBoot 日志

SpringBoot 配置Sl4j

Java API测试--Logback

SpringBoot学习笔记:整合sl4j+log4j