使用 slf4j 和任何其他日志框架进行日志记录 (log4j/java.util.logging)

Logging with slf4j and any other logging framework (log4j/java.util.logging)

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

好的,例如我在以下示例中使用 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");
    }
}

我在 class 路径中有 jar 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.com    
Feb 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 委托的不同日志记录实现的输出取决于日志记录框架的配置。每个框架可以做不同的事情。

如何配置不同的框架在各自的文档中有记载。 Log4j, Log4j2, Logback 文档。