Slf4j+Logback使用

一、下载组件:
    slf4j:http://www.slf4j.org/download.html
    logback:http://logback.qos.ch/download.html

    Logback 分为三个模块:logback-core,logback-classic,logback-access
    logback-core 是核心;
    logback-classic 改善了 log4j,且自身实现了 SLF4J API,所以即使用 Logback 你仍然可以使用其他的日志实现,如原始的 Log4J,java.util.logging 等;
    logback-access 让你方便的访问日志信息,如通过 http 的方式。


二、配置信息
    需要的配置文件和组件包,下面三个 jar 文件和一个 xml文件都是要放在项目的 ClassPath上
    slf4j-api-1.6.1.jar
    logback-classic-0.9.24.jar
    logback-core-0.9.24.jar

    logback.xml
    <?xml version="1.0" encoding="UTF-8" ?>
    <configuration>
      <jmxConfigurator />
      <!-- 控制台输出日志 -->
      <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <layout class="ch.qos.logback.classic.PatternLayout">
          <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
        </layout>
      </appender>
      <!-- 文件输出日志 (文件大小策略进行文件输出,超过指定大小对文件备份)-->
      <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <File>xxxx.log</File>
        <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
          <FileNamePattern>xxxx.log.%i.bak</FileNamePattern>
          <MinIndex>1</MinIndex>
          <MaxIndex>12</MaxIndex>
        </rollingPolicy>
        <triggeringPolicy            class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
          <MaxFileSize>100MB</MaxFileSize>
        </triggeringPolicy>
        <layout class="ch.qos.logback.classic.PatternLayout">
          <Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</Pattern>
        </layout>
      </appender>
      <!--这里指定logger name 是为jmx设置日志级别做铺垫 -->
      <logger name="com.xxx.xxx">
        <level value="INFO" />
        <appender-ref ref="STDOUT" />
        <appender-ref ref="FILE" />
      </logger>
    </configuration>
    

三、示例代码

 1 import org.slf4j.Logger;
 2     import org.slf4j.LoggerFactory;
 3 
 4     class TestLogback {   
 5       
 6         Logger logger = LoggerFactory.getLogger(TestLogback.class);   
 7       
 8         public void doIt() {   
 9             logger.debug("doing my job");   
10         }   
11     }

 

posted @ 2013-03-06 10:19  孟尧  阅读(222)  评论(0编辑  收藏  举报