学习参见:http://aub.iteye.com/blog/1101260 感谢分享
此处仅记录动手实验的日志配置文件:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!--控制台输出-->
<!--appender是负责写日志的组件,name指定append的名称,class指定appender的全限定名-->
<!--ch.qos.logback.core.ConsoleAppender :将日志添加到控制台-->
<!--<encoder>:对日志进行格式化-->
<!--<target>:字符串 System.out 或者 System.err ,默认 System.out ;-->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{HH:mm:ss:SSS} [%thread] %-5level %logger{5} -%msg%n</pattern>
</encoder>
</appender>
<!--ch.qos.logback.core.FileAppender:将日志添加到文件-->
<!--<file>:被写入的文件,可以使相对目录,也可以是绝对目录,如果目录不存在则自动创建-->
<!--<append>:如果是true,日志会被追加到文件结尾,如果是false,清空现存文件,默认是true-->
<!--<encoder>:对记录事件进行格式化-->
<!--<pattern>:格式化-->
<!--<prudent>:如果是true,日志会被安全的写入文件,默认false-->
<!--<appender name="FILE" class="ch.qos.logback.core.FileAppender">-->
<!--<file>${user.dir}/logs/test.log</file>-->
<!--<append>true</append>-->
<!--<encoder>-->
<!--<pattern>%d{yyyy-MM-dd HH:mm:ss} %-4relative [%thread] %-5level %logger{35} - %msg%n</pattern>-->
<!--</encoder>-->
<!--<prudent>false</prudent>-->
<!--</appender>-->
<!--ch.qos.logback.core.rolling.RollingFileAppender:最常用的滚动策略,他根据时间来制定滚动策略,既负责滚动也负责出发滚动-->
<!--<rollingPolicy>-->
<!--ch.qos.logback.core.rolling.TimeBasedRollingPolicy-->
<!--<fileNamePattern>:必要节点,包含文件名以及"%d"转换符,可以指定时间格式,-->
<!--<file>:节点可有可无,通知设置file,可以为活动文件和归档文件指定不同位置,当前日志总是记录到file指定的文件(活动文件),活动文件的名字不会改变;如果没有设置file,活动文件的名字会根据fileNamePattern的值,每隔一段时间改变一次,/或\会被当做目录分隔符-->
<!--<maxHistory>:可选节点,控制保留的归档文件的最大数量,超出数量就删除旧文件。如:假设每个月滚动,且<maxHistory>的值是6,则只保存近6个月的文件,删除之前的旧文件,删除旧文件时,那些为了归档而创建的目录也会被删除-->
<!--ch.qos.logback.core.rolling.FixedWindowRollingPolicy:根据窗口的算法重命名的滚动策略,有以下子节点:-->
<!--<minIndex>:窗口索引最小值-->
<!--<maxIndex>:窗口索引最大值,当用户指定的窗口过大时,会自动将窗口设置成12-->
<!--<fileNamePattern>:必须包含%i,例如:假设最大值和最小值是1和2,命名模式是mylog%i.log,会产生归档文件mylog1.log,mylog2.log,还可以指定文件压缩选项,例如:mylog%i.log.gz或log%i.log.zip-->
<!--<triggeringPolicy>-->
<!--SizeBasedTriggeringPolicy:查看当前活动文件的大小,如果超过指定大小会告知 -->
<!--RollingFileAppender:触发当前活动文件滚动。只有一个节点:<maxFileSize>:这是活动文件的大小,默认值是10MB。-->
<!--<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">-->
<!--<!–ch.qos.logback.core.rolling.TimeBasedRollingPolicy:按照基础时间进行作为滚动策略–>-->
<!--<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">-->
<!--<!–如:每天产生一个日志文件,保存30天的日志文件–>-->
<!--<fileNamePattern>${user.dir}/../log/logFile.%d{yyyy-MM-dd}.log</fileNamePattern>-->
<!--<maxHistory>30</maxHistory>-->
<!--</rollingPolicy>-->
<!--<encoder>-->
<!--<pattern>%-4relative [%thread] %-5level %logger{35} - %msg%n</pattern>-->
<!--</encoder>-->
<!--</appender>-->
<!--例如:按照固定窗口模式生成日志文件,当文件大小大于20MB时,生成新的日志文件。窗口大小是1到3,当保存3个归档文件后,将覆盖最早的日志-->
<!--<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">-->
<!--<file>test.log</file>-->
<!--<!–ch.qos.logback.core.rolling.FixedWindowRollingPolicy:按照固定窗口生成日志文件–>-->
<!--<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">-->
<!--<fileNamePattern>${user.dir}/../log/tests.%i.log.zip</fileNamePattern>-->
<!--<minIndex>1</minIndex>-->
<!--<maxIndex>3</maxIndex>-->
<!--</rollingPolicy>-->
<!--<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">-->
<!--<maxFileSize>2KB</maxFileSize>-->
<!--</triggeringPolicy>-->
<!--<encoder>-->
<!--<pattern>%-4relative [%thread] %-5level %logger{35} - %msg%n</pattern>-->
<!--</encoder>-->
<!--</appender>-->
<!--
<encoder>:负责两件事:一是把日志信息转换成字节数组,二是把字节数组写入到输出流。
目前PatternLayoutEncoder是唯一有用且默认的encoder,有一个<pattern>节点,用来设置日志的输入格式,使用%加转换符方式,如果要输出%,则必须用\对%进行转义
<pattern>里面转换符说明:%logger[0,5,10,15,16,26]:打印出全路径名的不同格式:c.e.d.DemoApplication,com.example.demo.DemoApplication;%d标识格式化日期,%msg:输出应用程序提供的信息,%t/%thread:输出产生日志的线程名
%r/%relative:输出从程序启动到创建日志记录的时间,单位毫秒;%p/%le%%level:输出日志级别
格式修饰符,与转换符共同使用:可选的格式符位于%和转换符之间。第一个可选修饰符是左对齐标识,符号是减号"-",接着是可选的最小宽度修饰符,用十进制数表示。如果字符小于最小宽度,则左填充或右填充,默认是左填充(即右对齐),
填充符为空格。如果字符大于最小宽度,字符永远不会被截断。最大宽度 修饰符,符号是点号"."后面加十进制数。如果字符大于最大宽度,则从前面截断。点符号“.”后面加减号“-”在加数字,表示从尾部截断。
例如:%-4relative 表示,将输出从程序启动到创建日志记录的时间 进行左对齐 且最小宽度为4。
-->
<root level="INFO">
<appender-ref ref="STDOUT"/>
<!--<appender-ref ref="FILE"/>-->
</root>
</configuration>