在OSGI/Eclipse中使用Log4j2.10和slf4j api 1.8

在OSGI/Eclipse中使用Log4j2.10和slf4j api 1.8,osgi,slf4j,log4j2,serviceloader,Osgi,Slf4j,Log4j2,Serviceloader,我试图在我的eclipse项目中使用Log4j2.10和slf4j api 1.8 beta1。 我无法使绑定正常工作,slf4j抱怨: SLF4J: No SLF4J providers were found. SLF4J: Defaulting to no-operation (NOP) logger implementation SLF4J: See http://www.slf4j.org/codes.html#noProviders for further details. 它与Lo

我试图在我的eclipse项目中使用Log4j2.10和slf4j api 1.8 beta1。 我无法使绑定正常工作,slf4j抱怨:

SLF4J: No SLF4J providers were found.
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#noProviders for further details.
它与Log4j 2.9.1和slf4j api 1.7.24协同工作,后者使用的是slf4j 1.8中不再支持的StaticLoggerBinder机制

我的eclipse插件依赖于

org.apache.logging.log4j.osgi,
org.apache.logging.log4j.api,
org.apache.logging.log4j.core,
org.apache.logging.log4j.slf4j-impl,
slf4j.api
问题在于,在LoggerFactory(slf4j api)中,ServiceLoader.load(SLF4JServiceProvider.class)调用返回任何空列表,因此找不到或未加载org.apache.logging.log4j.slf4j-impl的spi文件

我缺少什么东西来让它工作吗

提前感谢,


Rob

Log4j2与slf4j api 1.8.x版尚不兼容,后者现在使用JPMS/jigsaw/Java9模块强制实施的ServiceLoader机制。

您可以使用
org.apache.logging.log4j:log4j-slf4j18-impl
slf4j 1.8.x
进行绑定,如本文所述

啊,服务加载器。。。您可能需要看看感谢您的回复,我看到了,但这意味着修改slf4j api和log4j.slf4j-impl清单文件,不是吗?我希望它能与标准依赖项一起工作。抢劫