Logback的XML配置方式
先在项目的resources目录下创建logback-spring.xml
文件:
基本的配置
只定制输出到控制台的格式
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appender name="consoleLog" class="ch.qos.logback.core.ConsoleAppender">
<layout class="ch.qos.logback.classic.PatternLayout">
<!-- %d为时间,%msg为自己要输出的信息,%n为换行 -->
<pattern>
%d - %msg%n
</pattern>
</layout>
</appender>
<root level="info">
<appender-ref ref="consoleLog"/>
</root>
</configuration>
在基础配置之上实现每天产生一个日志文件
要注意的是,这次layout变成了encoder
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<!--控制台输出-->
<appender name="consoleLog" class="ch.qos.logback.core.ConsoleAppender">
<layout class="ch.qos.logback.classic.PatternLayout">
<!-- %d为时间,%msg为自己要输出的信息,%n为换行 -->
<pattern>
%d - %msg%n
</pattern>
</layout>
</appender>
<!--滚动文件输出-->
<appender name="fileInfoLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
<encoder>
<pattern>
%msg%n
</pattern>
</encoder>
<!--滚动策略,这里使用基于时间的滚动策略,每天产生一个文件-->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!--文件输出的路径-->
<fileNamePattern>E:\jack\code\sell\info.%d.log</fileNamePattern>
</rollingPolicy>
</appender>
<root level="info">
<appender-ref ref="consoleLog"/>
<appender-ref ref="fileInfoLog"/>
</root>
</configuration>
区分Info和Error的日志,输出到不同文件
使用filter标签
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<!--控制台输出-->
<appender name="consoleLog" class="ch.qos.logback.core.ConsoleAppender">
<layout class="ch.qos.logback.classic.PatternLayout">
<!-- %d为时间,%msg为自己要输出的信息,%n为换行 -->
<pattern>
%d - %msg%n
</pattern>
</layout>
</appender>
<!--滚动文件info级别日志的输出-->
<appender name="fileInfoLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!--拦截error级别及以上的日志-->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR</level>
<!--匹配上就拒绝-->
<onMatch>DENY</onMatch>
<!--匹配不上的就接受-->
<onMismatch>ACCEPT</onMismatch>
</filter>
<encoder>
<pattern>
%msg%n
</pattern>
</encoder>
<!--滚动策略,这里使用基于时间的滚动策略,每天产生一个文件-->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!--文件输出的路径-->
<fileNamePattern>E:\jack\code\sell\info.%d.log</fileNamePattern>
</rollingPolicy>
</appender>
<!--滚动文件error级别日志的输出-->
<appender name="fileErrorLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!--拦截error级别及以上的日志-->
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>ERROR</level>
</filter>
<encoder>
<pattern>
%msg%n
</pattern>
</encoder>
<!--滚动策略,这里使用基于时间的滚动策略,每天产生一个文件-->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!--文件输出的路径-->
<fileNamePattern>E:\jack\code\sell\error.%d.log</fileNamePattern>
</rollingPolicy>
</appender>
<root level="info">
<appender-ref ref="consoleLog"/>
<appender-ref ref="fileInfoLog"/>
<appender-ref ref="fileErrorLog"/>
</root>
</configuration>