首先这两个都是日志系统 只不过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./7450.html#comment-204549 |
|