项目的开发中,日志是必不可少的组件,所以也会相应的在项目中实现和构建我们所需要的日志框架。
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>
<!–开发环境–>
<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也有文件日志。
项目已上传至项目源码地址点击此处查看