springboot+logback日志使用

项目的开发中,日志是必不可少的组件,所以也会相应的在项目中实现和构建我们所需要的日志框架。
logback是Springboot推荐并且默认使用的日志系统。
官方推荐使用的xml名字的格式为:logback-spring.xml
在resource下创建logback-spring.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<!-- 日志级别分为TRACE < DEBUG < INFO < WARN < ERROR < FATAL -->
<configuration>

    <!-- 定义日志文件的存储地址 name的值是变量的名称,使用“${}”来使用变量 勿在 LogBack 的配置中使用相对路径 -->
    <property name="LOG_PATH" value="C:/log/mybatis"/>

    <!-- 彩色日志 -->
    <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter"/>
    <conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter"/>
    <conversionRule conversionWord="wEx" converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter"/>
    <!-- 彩色日志格式 -->
    <property name="CONSOLE_LOG_PATTERN"
              value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>

    <!--控制台输出 -->
    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <Pattern>${CONSOLE_LOG_PATTERN}</Pattern>
            <!-- 设置字符集 -->
            <charset>UTF-8</charset>
        </encoder>
    </appender>

    <!--每天生成日志文件-->
    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!-- 正在记录的日志文件的路径及文件名 -->
        <file>${LOG_PATH}/mybatis.log</file>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
            <charset>UTF-8</charset> <!-- 设置字符集 -->
        </encoder>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!--日志文件输出的文件名-->
            <fileNamePattern>${LOG_PATH}/mybatis-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
            <!--日志文件大小-->
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>10MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
            <!--日志文件保留天数-->
            <maxHistory>30</maxHistory>
        </rollingPolicy>
    </appender>

    <!-- 下面配置一些第三方包的日志过滤级别,用于避免刷屏 -->
    <logger name="org.springframework" level="INFO"/>
    <logger name="org.apache" level="INFO"/>
    <logger name="com.zaxxer.hikari" level="WARN"/>

    <!-- 日志输出级别 -->
    <root level="INFO">
        <appender-ref ref="CONSOLE"/>
        <appender-ref ref="FILE"/>
    </root>

    <!--多环境配置-->
    <!--开发环境-->
    <!--<springProfile name="dev">
        <logger name="com.example.mybatis" level="DEBUG"/>
    </springProfile>
    &lt;!&ndash;开发环境&ndash;&gt;
    <springProfile name="pro">
        <logger name="com.example.mybatis" level="INFO"/>
    </springProfile>-->
</configuration>

将此文件放到SpringBoot Mybatis多数据源配置这篇文章项目的resource目录下,开发环境可以在application.properties添加配置

logging.level.com.example.mybatis.mapper=debug

com.example.mybatis.mapper为你的dao层/mapper层路径
TestService.java改变控制台输出方式,代码如下

package com.example.mybatis.service;

import com.example.mybatis.entity.Test1;
import com.example.mybatis.entity.Test2;
import com.example.mybatis.mapper.test1.Test1Mapper;
import com.example.mybatis.mapper.test2.Test2Mapper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class TestService {
    private static final Logger log = LoggerFactory.getLogger(TestService.class);

    @Autowired
    private Test1Mapper test1Mapper;

    @Autowired
    private Test2Mapper test2Mapper;

    public void getStudents() {
        List<Test1> test1 = test1Mapper.getAll();
        List<Test2> test2 = test2Mapper.getAll();

        log.info("数据源DB1:" + test1);
        log.info("数据源DB2:" + test2);
    }
}

然后启动项目访问http://localhost:8080/test
在这里插入图片描述
可以看到控制台日志输出
查看目录C:\log\mybatis也有文件日志。
项目已上传至项目源码地址点击此处查看

猜你喜欢

转载自blog.csdn.net/qq_40548741/article/details/105477915
今日推荐