SpringBoot2.0学习之整合logback输出日志

SpringBoot2.0学习之整合logback输出日志

ps: 由于SpringBoot默认整合的就是logback,所以相关的依赖是不需要引入的。spring-boot-starter包下已经把相关依赖引入好了。所以我们只需要加入logback相关的配置就可以了。

1. 在resources下创建logback.xml文件

内容如下:

<?xml version="1.0" encoding="utf-8"?>
<configuration>

    <!-- 定义文件输出格式, 编码方式, 输出文件的路径 -->
    <property name="pattern" value="%d{yyyy-MM-dd HH:mm:ss.SSS} -%5p ${PID:-} [%15.15t] %-40.40logger{39} : %m%n"/>
    <property name="charsetEncoding" value="UTF-8"/>
    <property name="logPath" value="D:/webLog"/>

    <!--控制台日志-->
    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>${pattern}</pattern>
            <charset>#{charsetEncoding}</charset>
        </encoder>
    </appender>
    <!-- 运行日志 日期滚动记录-->
    <appender name="infoLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!-- 正在记录的日志文件的路径及文件名 -->
        <File>${logPath}/infoLog.log</File>
        <!--日志记录器的滚动策略-->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- 生成日志文件名格式 -->
            <FileNamePattern>${logPath}/infoLog.%d{yyyy-MM-dd}.log</FileNamePattern>
            <!-- 历史记录存在时间 单位:天 -->
            <maxHistory>30</maxHistory>
            <!--如果配置了文件大小的限制,若超出限制则会在文件名后追加索引从0开始将文件拆分-->
            <!--<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">-->
                <!--<maxFileSize>2MB</maxFileSize>-->
            <!--</timeBasedFileNamingAndTriggeringPolicy>-->
        </rollingPolicy>
        <!-- 追加方式记录日志 -->
        <append>true</append>
        <encoder>
            <Pattern>${pattern}</Pattern>
            <charset>#{charsetEncoding}</charset>
        </encoder>
    </appender>
    <!-- 错误日志 日期滚动记录-->
    <appender name="errorLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!-- 正在记录的日志文件的路径及文件名 -->
        <File>${logPath}/errorLog.log</File>
        <!--日志记录器的滚动策略-->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- 生成日志文件名格式 -->
            <FileNamePattern>${logPath}/errorLog.%d{yyyy-MM-dd}.log</FileNamePattern>
            <!-- 历史记录存在时间 单位:天 -->
            <maxHistory>30</maxHistory>
            <!--如果配置了文件大小的限制,若超出限制则会在文件名后追加索引从0开始将文件拆分-->
            <!--<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">-->
            <!--<maxFileSize>2MB</maxFileSize>-->
            <!--</timeBasedFileNamingAndTriggeringPolicy>-->
        </rollingPolicy>
        <!-- 追加方式记录日志 -->
        <append>true</append>
        <encoder>
            <Pattern>${pattern}</Pattern>
            <charset>#{charsetEncoding}</charset>
        </encoder>
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <!-- 设置日志输出级别 -->
            <level>ERROR</level>
        </filter>
    </appender>
    <!--配置日志输出的级别-->
    <root level="INFO">
        <appender-ref ref="console"/>
        <appender-ref ref="infoLog"/>
        <appender-ref ref="errorLog"/>
    </root>
</configuration>

测试代码:

package com.qf.marklife;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;


@RunWith(SpringRunner.class)
@SpringBootTest
public class Test1 {

    private final static Logger logger = LoggerFactory.getLogger(Test.class);

    @Test
    public void test(){
        logger.info("成功输出info级别日志");
        logger.error("成功输出error级别日志");
    }
}

测试结果

控制台输出:

SpringBoot2.0学习之整合logback输出日志

文件输出:

error:SpringBoot2.0学习之整合logback输出日志
info:
SpringBoot2.0学习之整合logback输出日志

logback详细学习传送门:https://www.cnblogs.com/lixuwu/p/5804793.html

人生是一场永不落幕的演出,我们每一个人都是演员,只不过,有的人顺从自己,有的人取悦观众。