Logback配置
相关配置
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 seconds" debug="false">
<!--1.定义参数常量 -->
<property name="log.level" value="debug"/> <!--TRACE < DEBUG < INFO < WARN < ERROR -->
<property name="log.maxHistory" value="30"/>
<property name="log.filePath" value="${catalina.base}/logs/webapps" /><!--日志保存的路径-->
<property name="log.pattern" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %highlight(%-5level) %magenta(%logger{50}) - %msg%n" /><!--日志的输出格式-->
<!-- 2.控制台设置 -->
<appender name="consoleAppender" class="ch.qos.logback.core.ConsoleAppender">
<encoder><!--将日志信息转换成字符串,并且将这些日志信息输出-->
<pattern>${log.pattern}</pattern>
</encoder>
</appender>
<!-- 3.DEBUG -->
<appender name="debugAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.filePath}/debug.log</file><!-- 文件路径 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><!--随着时间滚动-->
<fileNamePattern>${log.filePath}/debug/debug.%d{yyyy-MM-dd}.log.gz</fileNamePattern><!-- 日志文件名称 -->
<maxHistory>${log.maxHistory}</maxHistory> <!-- 文件最大保存历史数量 -->
</rollingPolicy>
<encoder>
<pattern>${log.pattern}</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>DEBUG</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<!-- 4.INFO -->
<appender name="infoAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.filePath}/info.log</file><!-- 文件路径 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><!--随着时间滚动-->
<fileNamePattern>${log.filePath}/info/info.%d{yyyy-MM-dd}.log.gz</fileNamePattern><!-- 文件名称 -->
<maxHistory>${log.maxHistory}</maxHistory> <!-- 文件最大保存历史数量 -->
</rollingPolicy>
<encoder>
<pattern>${log.pattern}</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>INFO</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<!-- 5.ERROR -->
<appender name="errorAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.filePath}/erorr.log</file> <!-- 文件路径 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${log.filePath}/error/error.%d{yyyy-MM-dd}.log.gz</fileNamePattern> <!-- 文件名称 -->
<maxHistory>${log.maxHistory}</maxHistory> <!-- 文件最大保存历史数量 -->
</rollingPolicy>
<encoder>
<pattern>${log.pattern}</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<!--logback其他配置-->
<logger name="com.mark" level="${log.level}" additivity="true"><!--监听com.mark下的文件,级别在DEBUG以上-->
<appender-ref ref="debugAppender"/><!--绑定-->
<appender-ref ref="infoAppender"/>
<appender-ref ref="errorAppender"/>
</logger>
<root level="info">
<appender-ref ref="consoleAppender"/>
</root>
</configuration>
测试类
package com.mark.other;
import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* Created by Mark on 2018/3/27.
* LogBack日志输出测试
*/
public class logBackTest {
private static Logger logger = LoggerFactory.getLogger(logBackTest.class);
@Test
public void testLog(){
logger.debug("This is DeBug");
logger.info("This is Info");
logger.error("This is Error");
}
}
输出结果:
这里输出的日志可以高亮显示是因为
<property name="log.pattern" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %highlight(%-5level) %magenta(%logger{50}) - %msg%n" /><!--日志的输出格式-->
配置文件设置了%highlight 和 %magenta(详情或者更多的设置可以查看上面官网地址)