logback 学习

偶然间使用spring tool suit看到这个日志框架;就去看了下与log4j的区别,发现比前者强大不少,抽空学习了下相关配置;

<!-- Logging with SLF4J & LogBack -->
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-api</artifactId>
			<version>${slf4j.version}</version>
			<scope>compile</scope>
		</dependency>
		<dependency>
			<groupId>ch.qos.logback</groupId>
			<artifactId>logback-classic</artifactId>
			<version>${logback.version}</version>
			<scope>runtime</scope>
		</dependency>

以上是maven配置的引用;

同时还要在项目的src/main/resource下配置一个logback.cml的默认识别文件;内容如下

<?xml version="1.0" encoding="UTF-8"?>
<!-- configuration file for LogBack (slf4J implementation)
See here for more details: http://gordondickens.com/wordpress/2013/03/27/sawing-through-the-java-loggers/ -->
<configuration scan="true" scanPeriod="30 seconds">

	<!-- 配置当前项目路径 -->
	<property name="contextPath" value="logs"/>
	<property name="logPath" value="${contextPath}"/>

    <!--Appendar详解: http://logback.qos.ch/manual/appenders.html#RollingFileAppender -->
    <!-- 日志输出文件配置 -->
    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!-- 当前Log文件名 -->
        <file>${logPath}/monitor.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- 非当天的Log文件压缩备份为 archive/ldap-pwd.2014-08-10.zip -->
            <fileNamePattern>${logPath}/monitor.log.%d{yyyy-MM-dd}</fileNamePattern>
            <!-- 超过30天的备份文件会被删除 -->
            <maxHistory>30</maxHistory>
        </rollingPolicy>

        <layout class="ch.qos.logback.classic.PatternLayout">
            <!-- 格式说明:http://logback.qos.ch/manual/layouts.html#ClassicPatternLayout -->
            <Pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %40logger{40} - %msg%n</Pattern>
        </layout>
    </appender>
	
	<!-- 日志控制台输出配置 -->
    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %logger{36} - %msg%n</pattern> 
        </encoder>
        <!-- 过滤输出日志信息 通过修改level来查看输出日志情况-->
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
        	<level>debug</level>
        </filter>
    </appender>

	<!-- 下面配置一些第三方包的日志过滤级别,用于避免刷屏 -->  
    <logger name="org.hibernate" level="WARN" />  
    <logger name="org.springframework" level="WARN" />  
    <logger name="com.opensymphony" level="WARN" />  
    <logger name="org.apache" level="WARN" />  
  
    <!-- show parameters for hibernate sql 专为 Hibernate 定制 -->  
    <logger name="org.hibernate.type.descriptor.sql.BasicBinder" level="TRACE" />  
    <logger name="org.hibernate.type.descriptor.sql.BasicExtractor" level="DEBUG" />  
    <logger name="org.hibernate.SQL" level="DEBUG" />  
    <logger name="org.hibernate.engine.QueryParameters" level="DEBUG" />  
    <logger name="org.hibernate.engine.query.HQLQueryPlan" level="DEBUG" /> 
    
   <!-- Uncomment and add your logger here: <logger name="org.springframework.samples.service.service" level="debug"/> -->
    
    <!-- 配置日志总体输出级别 -->
    <root level="trace">
    	<appender-ref ref="FILE" />
        <appender-ref ref="console"/>
    </root>
    
</configuration>

相关测试代码很简单:

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


public class LogBackTest {
	
	public static void main(String[] args){
		Logger debugLogger = LoggerFactory.getLogger(LogBackTest.class);
		
		debugLogger.trace("log trace");
		debugLogger.debug("log debuger");
		debugLogger.info("log info");
		debugLogger.warn("log warn");
		debugLogger.error("log error");
		
	}
	
}
通过修改配置文件logback.xml的参数level来查看不同情况下的运行状况;

学习网站:

http://blog.csdn.net/haidage/article/details/6794509

http://forever8tf.iteye.com/blog/1295855

你可能感兴趣的:(logback 学习)