我的代码是:
SLF4JBridgeHandler.removeHandlersForRootLogger();
SLF4JBridgeHandler.install();
System.out.println(LoggerFactory.getILoggerFactory().getClass().getCanonicalName());
在生产服务器上,我总是返回org.slf4j.helpers.SubstituteLoggerFactory
,它依次是sfl4j LoggerFactory
。但是在开发人员中,我总是会返回ch.qos.logback.classic.LoggerContext
。最终,我想要回退LoggerContext
,因为我随后在追加程序中将其用作上下文。对于我的一生,我不明白为什么。
我什至查看了一个解决方案,该解决方案说这可能是由于冲突导致的赛车状况,并在等待适当的记录器工厂加载时做一会儿循环和睡眠,但这没有用。而且这是一个hack,而不是理想的解决方案。
pom.xml依赖项列表很大,因此,除非有一种简单的搜索方式,以查看哪些冲突正在发生,否则我无法想象尝试手动执行此操作...
任何建议将不胜感激。