在我的项目中,我正在使用slf4j + log4j进行日志记录。 Java的新手,试图了解日志记录的工作原理。如果我想使用除log4j之外的其他日志记录框架,请说java.util.logging,那么由于正在使用slf4j,因此无需更改任何代码。我只需要删除jar4的jar并添加java.util.logging的二进制文件即可。当我们不更改任何代码时,我试图了解它的工作方式。如果问题不清楚,请告诉我。如果您能指出一些链接或示例,我将不胜感激。

好的,例如,在以下示例中使用slf4j和java.util.logging。

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class SLF4JHello {

    private final Logger slf4jLogger = LoggerFactory.getLogger(SLF4JHello.class);

    public void sayHello(String name){

        slf4jLogger.info("Hi,{}",name);
        slf4jLogger.info("Welcome to the HelloWorld example of SLF4J");
    }

    public static void main(String[] args) {
        SLF4JHello slf4jHello = new SLF4JHello();
        slf4jHello.sayHello("srccodes.com");
    }
}


并且我在类路径中有jars slf4j-api-1.7.8.jar和slf4j-jdk14-1.7.7-1.0.0 jar。

这将在控制台中产生以下输出。

Feb 25, 2015 9:29:52 AM com.srccodes.examples.SLF4JHello sayHello INFO: Hi,srccodes.comFeb 25, 2015 9:29:52 AM com.srccodes.examples.SLF4JHello sayHello INFO: Welcome to the HelloWorld example of SLF4J


SLF4J是用于日志记录系统的简单外观,允许最终用户在部署时插入所需的日志记录系统。

我的问题是-现在,如果我想切换到以上代码中的log4j而不是java.util.logging,则必须用log4j jar替换jul jar,并且代码中无需进行任何更改。现在代码的行为是什么?仍会显示相同的输出吗?

我的意思是,代码在不同的日志记录框架下如何不同地工作?

最佳答案

SLF4J委托的不同日志记录实现的输出取决于日志记录框架的配置。每个框架可以做不同的事情。

有关如何配置不同框架的信息,请参见相应的文档。 Log4jLog4j2Logback文档。

关于java - 使用slf4j和其他任何日志记录框架进行日志记录(log4j/java.util.logging),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28710710/

10-13 02:04