首页 > 代码库 > slf4j-api-1.7.5日志打印实验

slf4j-api-1.7.5日志打印实验

以下一段话来自:百度百科
  如果你开发的是类库或者嵌入式组件,那么就应该考虑采用SLF4J,因为不可能影响最终用户选择哪种日志系统。在另一方面,如果是一个简单或者独立的应用,确定只有一种日志系统,那么就没有使用SLF4J的必要。假设你打算将你使用log4j的产品卖给要求使用JDK 1.4 Logging的用户时,面对成千上万的log4j调用的修改,相信这绝对不是一件轻松的事情。但是如果开始便使用SLF4J,那么这种转换将是非常轻松的事情。

  今天来测试一下slf4j的使用和它的魅力。

  一般现在java项目都是web项目,所以我们的试验项目就采用web项目测试。

1.新建web项目slf4jdemo

2.引用jar包

这里需要注意的就是slf4j对应的log4j的版本,的那个人你也可以选择其他的日志系统。

log4j-1.2.12.jar

servlet2.5-jsp2.1-api.jar

slf4j-api-1.7.5.jar

slf4j-log4j12-1.7.5.jar

3.添加Log4j的配置文件Log4j.properties

这里需要说明一下,Log4j本身的默认路径是/WEB-INF/classes/目录下的,所以千万别放错位置了。

#log4j logger FATAL=0 ERROR=3 WARN=4 INFO=6 DEBUG=7
#log4j.rootLogger = DEBUG, a1
log4j.rootLogger = OFF
### direct log messages to stdout ###
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target = System.out
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern = %d{ABSOLUTE} %5p %c{1}:%L - %m%n
log4j.logger.org =ERROR, a1
log4j.logger.net = ERROR, a1

log4j.logger.com.qisentech = DEBUG, a1

log4j.appender.a1 = org.apache.log4j.RollingFileAppender
log4j.appender.a1.File = ${rootPath}/webplus.log
log4j.appender.a1.MaxFileSize = 10000KB
log4j.appender.a1.MaxBackupIndex = 10
log4j.appender.a1.layout = org.apache.log4j.PatternLayout
log4j.appender.a1.layout.ConversionPattern = %d [%t](%F:%L)%c %-5p - %m%n

#log4j.rootLogger=WARN, stdout
#log4j.appender.stdout=org.apache.log4j.ConsoleAppender
#log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
#log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n
细心一点看配置信息,可以看到一个${rootPath},选择我们就要初始化这个变量。

4.新建初始化Servlet

/*
 * 文 件 名 : com.qisentech.slf4j.demo.WebplusContextStart.java
 * 创建日期 : 2013-8-23 11:20:48
 * 创 建 者 : qsyang
 */
package com.qisentech.slf4j.demo;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;

/**
 * <p>Title: </p>
 *
 * <p>Description: </p>
 *
 * @author qsyang
 * @version 1.0
 */
public class WebplusContextStart extends HttpServlet {

    @Override
    public void init() throws ServletException {
        System.setProperty("log4j.configuration", "Log4j.properties");
        String contextPath = this.getServletContext().getRealPath("/");
        System.setProperty("rootPath", contextPath);
    }
}
我们设置了Log4j的默认参数log4j.configuration和我们配置文件变量rootPath。

5.在类中使用slf4j打印日志

引用方式:

Logger _log = LoggerFactory.getLogger(Slf4jTest.class);

注意,这里的对象引用是:
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

再看下打印方式:

_log.debug(“调试日志:XXXXX”);

附上全部源码:

/*
 * 文 件 名 : com.qisentech.slf4j.demo.Slf4jTest.java
 * 创建日期 : 2013-8-23 11:02:20
 * 创 建 者 : qsyang
 */
package com.qisentech.slf4j.demo;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 * <p>Title: </p>
 *
 * <p>Description: </p>
 *
 * @author qsyang
 * @version 1.0
 */
public class Slf4jTest {

    private static Logger _log = LoggerFactory.getLogger(Slf4jTest.class);

    public static void testDebug(String info) {
        System.out.println("testDebug");
        _log.debug(info);
    }

    public static void testInfo(String info) {
        System.out.println("testInfo");
        _log.info(info);
    }

    public static void testWarn(String info) {
        System.out.println("testWarn");
        _log.warn(info);
    }

    public static void testError(String info) {
        System.out.println("testError");
        _log.error(info);
    }
}
5.不要忘了配置web.xml

    <!-- Webplus 环境初始化(必须启动) -->
    <servlet>
        <servlet-name>WebplusContextStart</servlet-name>
        <servlet-class>com.qisentech.slf4j.demo.WebplusContextStart</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
这样整个就成功了。
下面将源码下载地址附上,有兴趣可以去下载。

http://download.csdn.net/detail/yakson/7586371