zoukankan      html  css  js  c++  java
  • 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


  • 相关阅读:
    偏函数
    装饰器
    排序
    匿名函数
    参数传递
    pass语句
    不定长函数
    通用函数
    不定长参数(元祖)
    不定长参数(字典)
  • 原文地址:https://www.cnblogs.com/bhlsheji/p/4021636.html
Copyright © 2011-2022 走看看