Logstash Logback classic通过不同的依赖关系与SLF4J冲突
我有一个内部库升级为使用Logstash Logback classic通过不同的依赖关系与SLF4J冲突,logstash,slf4j,logback-classic,logstash-logback-encoder,Logstash,Slf4j,Logback Classic,Logstash Logback Encoder,我有一个内部库升级为使用logstash,它对logback具有强制依赖性,因此logback classic(在其包内部有自己的slf4j附加器,这意味着我不能在这里排除任何库) 当我尝试将此依赖项用作任何其他遗留模块上的jar时(所有这些模块都在使用slf4j-log4j12),我确实收到了日志依赖项地狱消息: SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found binding in [jar:file:/home
logstash
,它对logback
具有强制依赖性,因此logback classic
(在其包内部有自己的slf4j附加器,这意味着我不能在这里排除任何库)
当我尝试将此依赖项用作任何其他遗留模块上的jar时(所有这些模块都在使用slf4j-log4j12
),我确实收到了日志依赖项地狱消息:
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/home/asdf/.m2/repository/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/home/asdf/.m2/repository/org/slf4j/slf4j-log4j12/1.7.26/slf4j-log4j12-1.7.26.jar!/org/slf4j/impl/StaticLoggerBinder.class]
但问题本身是,我不能仅仅排除logback classic,因为它是logstash的必备工具,而且我不能将我的应用程序迁移到logback,因为它们配置了log4j.xml
有没有办法强迫slf4j使用应用程序appender而不是来自logback库的appender,或者,有没有其他办法让一个给定的包使用appender,其余的则使用other