1.logback.xml文件
eclipse放在src目录下,在idea项目中,有一个放配置文件的文件夹。
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="30 seconds">
<!--Appendar详解: http://logback.qos.ch/manual/appenders.html#RollingFileAppender -->
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 当前Log文件名 -->
<file>test.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 非当天的Log文件压缩备份为 archive/ldap-pwd.2014-08-10.zip -->
<fileNamePattern>archive/ldap-pwd.%d{yyyy-MM-dd}.zip</fileNamePattern>
<!-- 超过30天的备份文件会被删除 -->
<maxHistory>30</maxHistory>
</rollingPolicy>
<layout class="ch.qos.logback.classic.PatternLayout">
<!-- 格式说明:http://logback.qos.ch/manual/layouts.html#ClassicPatternLayout -->
<Pattern>%d [%thread] %-5level %40logger{40} - %msg%n</Pattern>
</layout>
</appender>
<logger name="cn.justfly.training.logging" level="info" />
<root level="info">
<appender-ref ref="FILE" />
</root>
</configuration>
###2.configuration节点 属性值:
- scan:当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true。
- scanPeriod:设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。当scan为true时,此属性生效。默认的时间间隔为1分钟。
- debug:当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。默认值为false。
例如:
<configuration scan="true" scanPeriod="60 seconds" debug="false">
<!-- 其他配置省略-->
</configuration>
3.<property>节点
根目录下的一个节点,主要是设置参数时使用,主要有两个属性name,value。比如可以设置日志路径信息。 例如:获取项目根目录。
<property name="path" value="."/>
获取值:使用${name}
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 当前Log文件名 -->
<file>${path}/logs/test.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 非当天的Log文件压缩备份为 archive/ldap-pwd.2014-08-10.zip -->
<fileNamePattern>${path}/logs/log.%d{yyyy-MM-dd}.zip</fileNamePattern>
<!-- 超过30天的备份文件会被删除 -->
<maxHistory>30</maxHistory>
</rollingPolicy>
<layout class="ch.qos.logback.classic.PatternLayout">
<!-- 格式说明:http://logback.qos.ch/manual/layouts.html#ClassicPatternLayout -->
<Pattern>%d [%thread] %-5level %40logger{40} - %msg%n</Pattern>
</layout>
</appender>
###4.<timestamp>节点 有两个属性
- key:标识此<timestamp> 的名字。
- datePattern:设置将当前时间(解析配置文件的时间)转换为字符串的模式,遵循java.txt.SimpleDateFormat的格式。
例子:获取值使用${key}
<configuration scan="true" scanPeriod="60 seconds" debug="false">
<timestamp key="bySecond" datePattern="yyyyMMdd'T'HHmmss"/>
<!-- 其他配置省略-->
</configuration>
###5.<logger>节点 用来设置某一个包或者具体的某一个类的日志打印级别、以及指定<appender>。<logger>仅有一个name属性,一个可选的level和一个可选的addtivity属性。
- name:用来指定受此logger约束的某一个包或者具体的某一个类。
- level:用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF,还有一个特俗值INHERITED或者同义词NULL,代表强制执行上级的级别。如果未设置此属性,那么当前logger将会继承上级的级别。
- addtivity:是否向上级logger传递打印信息。默认是true。
<logger>可以包含零个或多个<appender-ref>元素,标识这个appender将会添加到这个logger。
###6.<root>节点 但是它是根logger。只有一个level属性.。 level: 用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF,不能设置为INHERITED或者同义词NULL。 默认是DEBUG。 <root>可以包含零个或多个<appender-ref>元素,标识这个appender将会添加到这个loger。