在我的项目中,我正在使用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委托的不同日志记录实现的输出取决于日志记录框架的配置。每个框架可以做不同的事情。
有关如何配置不同框架的信息,请参见相应的文档。 Log4j,Log4j2,Logback文档。
关于java - 使用slf4j和其他任何日志记录框架进行日志记录(log4j/java.util.logging),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28710710/