首页 > 代码库 > slf4j结合log4j配置日志系统

slf4j结合log4j配置日志系统

首先这两个都是日志系统

只不过slf4j是一个简单的门面日志系统简单的来说就是提供了一些列日志接口没有具体的实现类似于jdbc但是比jdbc简单因为

它不需要加载驱动只需要加入其特定的包即可。而log4j自己单独就可以是一个完整的日志系统它提供了自己的实现而不是简单

提供日志接口。下面说说二者的整合。

1、新建一个Java project

2、引入log4j-1.2.15.jar,slf4j-api-1.5.6.jar,slf4j-log4j12-1.5.6.jar三个包 版本不限

3、在项目的根目录下新建log4j.properties内容如下

log4j.rootLogger=info, ServerDailyRollingFile, stdout 
log4j.appender.ServerDailyRollingFile=org.apache.log4j.DailyRollingFileAppender 
log4j.appender.ServerDailyRollingFile.DatePattern=‘.‘yyyy-MM-dd 
log4j.appender.ServerDailyRollingFile.File=logs/notify-subscription.log 
log4j.appender.ServerDailyRollingFile.layout=org.apache.log4j.PatternLayout 
log4j.appender.ServerDailyRollingFile.layout.ConversionPattern=%d - %m%n 
log4j.appender.ServerDailyRollingFile.Append=true


log4j.appender.stdout=org.apache.log4j.ConsoleAppender 
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout 
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH\:mm\:ss} %p [%c] %m%n

4、新建测试类

public class TestSlf4j {
public static void main(String[] args) {
PropertyConfigurator.configure("log4j.properties");
Logger logger = Logger.getLogger(TestSlf4j.class);
logger.info("yes");



org.slf4j.Logger logger2 = LoggerFactory.getLogger(TestSlf4j.class);
logger2.info("yes");
logger2.debug("hello");
logger2.warn("hello");



}
}

输出结果是

2014-12-09 11:20:53 INFO [com.iss.slf4j.TestSlf4j] yes
2014-12-09 11:20:53 INFO [com.iss.slf4j.TestSlf4j] yes
2014-12-09 11:20:53 WARN [com.iss.slf4j.TestSlf4j] hello

相信可能在疑问既然log4j已经可以单独作为一个日志系统为什么还需要slf4j呢?

看完下面这篇文章 也许你的疑惑就解开了http://www.importnew.com/7450.html#comment-204549

slf4j结合log4j配置日志系统