Java Slf4j使用简单的Slf4j代替logger4j

Java Slf4j使用简单的Slf4j代替logger4j,java,slf4j,lombok,Java,Slf4j,Lombok,我正在为Minecraft编写一个插件,它使用Gradle向已经制作的框架(海绵)添加额外的代码。当我尝试使用Lombok中的@Slf4j注释时,我能够使用的日志记录级别只有info和更高级别。根据我在另一篇帖子上看到的评论,这表明它使用的是slf4j simple,它必须已经内置到我正在扩展的框架中。当我添加logger4j作为依赖项时,slf4j继续使用简单的slf4j而不是logger4j。除了其他方法之外,我希望能够使用logger.debug和logger.trace。我只是配置不正确

我正在为Minecraft编写一个插件,它使用Gradle向已经制作的框架(海绵)添加额外的代码。当我尝试使用Lombok中的@Slf4j注释时,我能够使用的日志记录级别只有info和更高级别。根据我在另一篇帖子上看到的评论,这表明它使用的是slf4j simple,它必须已经内置到我正在扩展的框架中。当我添加logger4j作为依赖项时,slf4j继续使用简单的slf4j而不是logger4j。除了其他方法之外,我希望能够使用logger.debug和logger.trace。我只是配置不正确吗?如何告诉slf4j使用logger4j而不是简单的slf4j?

如果有多个slf4j实现。它将随机选取一个。因此,如果您想使用log4j而不是简单的slf4,您可以从类路径中删除simple-slf4j.jar

modre detaile:

如果您想同时使用它们,您可以直接使用log4j而不使用slf4j。对于exmaple:

import org.apache.log4j.*;
public class LogTest {
  static Logger logger = Logger.getLogger(LogTest.class.getName());
  public static void main(String[] args) {
     PropertyConfigurator.configure ("src/log4j.properties");
     logger.debug("Debug ...");
     logger.info("Info ...");
     logger.warn("Warn ...");
     logger.error("Error ...");
 }
}