在我的项目中使用slf4j + log4j进行日志记录。我是java的新手并试图了解日志记录的工作原理。如果我想使用log4j以外的其他日志框架说java.util.logging,那么我不需要更改任何代码,因为我使用的是slf4j。我只需要删除log4j的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");
}
}
我在类路径中有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,并且不需要在代码中更改任何内容。现在代码的行为是什么?它仍会显示相同的输出吗?
我的意思是代码如何与不同的日志框架不同地工作?