Skip to main content
 首页 » 编程设计

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

2025年05月04日49unruledboy

我正在尝试在我的 eclipse 项目中使用 Log4j2.10 和 slf4j-api 1.8 beta1。 我无法让绑定(bind)工作,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,后者使用 StaticLoggerBinder 机制,该机制在 slf4j 1.8 中不再受支持

我的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 文件或未加载。

为了让它正常工作,我还缺少什么吗?

提前致谢,

请您参考如下方法:

您可以使用 org.apache.logging.log4j: log4j-slf4j18-implSLF4J 1.8.x 进行绑定(bind),如本文 official documentation 中所述。 。