You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Eclipse 4.31集成Logback 1.5.0遇SLF4J无提供者问题求助

Eclipse RCP项目SLF4J无Provider问题排查

问题现象

在Eclipse 4.31环境下,使用slf4j.api 2.0.12和ch.qos.logback.classic 1.5.0搭建RCP项目,调用日志功能时出现以下警告:

SLF4J(W): No SLF4J providers were found.
SLF4J(W): Defaulting to no-operation (NOP) logger implementation
SLF4J(W): See https://www.slf4j.org/codes.html#noProviders for further details.

已参考Vogella的Eclipse RCP日志教程搭建,且已将logback-classic加入类路径,但问题仍未解决。

排查要点

1. 检查Manifest清单配置

  • 确保MANIFEST.MF中正确声明依赖:
    • 若用Require-Bundle:
      Require-Bundle: org.slf4j.api;bundle-version="2.0.12",
       ch.qos.logback.classic;bundle-version="1.5.0"
      
    • 若用Import-Package:
      Import-Package: org.slf4j;version="[2.0.0,3.0.0)",
       ch.qos.logback.classic;version="[1.5.0,2.0.0)"
      
  • 确认ch.qos.logback.classic的Manifest中包含SLF4J-Provider属性,确保SLF4J能识别其为实现类。

2. 目标平台配置验证

  • 检查目标平台中是否同时包含slf4j.api和ch.qos.logback.classic的完整bundle,版本与项目依赖一致。
  • 通过Window > Preferences > Plug-in Development > Target Platform确认bundle已正常加载,无缺失或版本冲突。

3. 产品配置检查

  • 在.product文件的Dependencies标签页中,将ch.qos.logback.classic和slf4j.api添加到运行时依赖,并设置为included。
  • 若用p2仓库构建,确认这两个bundle已包含在p2站点中,构建时能正确拉取。

4. 代码与类加载验证

  • 确保日志实例采用SLF4J标准API获取:
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    
    public class MyClass {
        private static final Logger logger = LoggerFactory.getLogger(MyClass.class);
        
        public void testLog() {
            logger.info("Test log message");
        }
    }
    
  • 调试验证类加载器能否加载ch.qos.logback.classic.spi.LogbackServiceProvider类(SLF4J 2.x通过SPI识别Provider)。

5. 冲突排查

  • 检查项目中是否存在其他SLF4J Provider(如log4j-slf4j-impl),需排除冲突,仅保留logback-classic作为唯一实现。
  • 确认logback-classic 1.5.0与SLF4J 2.0.12版本兼容(官方已支持,但若有自定义配置需核对)。

内容的提问来源于stack exchange,提问作者Holzmacher

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 16:22:09