SpringBoot项目的logback日志配置(包括打印mybatis的sql语句)

2025-05-29 0 39

关于logback日志的详解见这位仁兄的博客:Spring Boot-日志配置(超详细)
我在这就开门见山直接介绍我们项目日志配置使用吧!~

1、基本介绍

默认情况下,Spring Boot项目就会用Logback来记录日志,并用INFO级别输出到控制台。如下图:

SpringBoot项目的logback日志配置(包括打印mybatis的sql语句)

实际开发中我们不需要直接添加logback日志依赖。
你会发现 spring-boot-starter 其中包含了 spring-boot-starter-logging,该依赖内容就是 Spring Boot 默认的日志框架 logback

日志级别从低到高分为:

TRACE < DEBUG < INFO < WARN < ERROR < FATAL

只能展示大于或等于设置的日志级别的日志;也就是说springboot默认级别为INFO,那么在控制台展示的日志级别只有INFO 、WARN、ERROR、FATAL

2、logback.xml日志文件配置

根据不同的日志系统,你可以按如下规则组织配置文件名,就能被正确加载:

  • Logback:logback-spring.xml, logback-spring.groovy, logback.xml, logback.groovy
  • Log4j:log4j-spring.properties, log4j-spring.xml, log4j.properties, log4j.xml
  • Log4j2:log4j2-spring.xml, log4j2.xml
  • JDK (Java Util Logging):logging.properties

Spring Boot官方推荐优先使用带有 -spring 的文件名作为你的日志配置(如使用 logback-spring.xml ,而不是logback.xml),命名为logback-spring.xml的日志配置文件,spring boot可以为它添加一些spring boot特有的配置项(下面会提到)。
默认的命名规则,并且放在 src/main/resources 下如果你即想完全掌控日志配置,但又不想用logback.xml作为Logback配置的名字,application.yml可以通过logging.config属性指定自定义的名字:

?

1
logging.config=classpath:logging-config.xml

这里写代码片虽然一般并不需要改变配置文件的名字,但是如果你想针对不同运行时Profile使用不同的日志配置,这个功能会很有用。

SpringBoot项目的logback日志配置(包括打印mybatis的sql语句)

我们项目的日志配置内容:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29
<?xml version="1.0" encoding="UTF-8"?>

<configuration>

<!-- 此xml在spring-boot-1.5.3.RELEASE.jar里 -->

<include resource="org/springframework/boot/logging/logback/defaults.xml" />

<include resource="org/springframework/boot/logging/logback/console-appender.xml" />

<!-- 开启后可以通过jmx动态控制日志级别(springboot Admin的功能) -->

<!--<jmxConfigurator/>-->

<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">

<!--<File>/home/hfw-client/hfw_log/stdout.log</File>-->

<File>D:/log/hfw-client/hfw_log/stdout.log</File>

<encoder>

<pattern>%date [%level] [%thread] %logger{60} [%file : %line] %msg%n</pattern>

</encoder>

<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">

<!-- 添加.gz 历史日志会启用压缩 大大缩小日志文件所占空间 -->

<!--<fileNamePattern>/home/hfw-client/hfw_log/stdout.log.%d{yyyy-MM-dd}.log</fileNamePattern>-->

<fileNamePattern>D:/log/hfw-client/hfw_log/stdout.log.%d{yyyy-MM-dd}.log</fileNamePattern>

<maxHistory>30</maxHistory><!-- 保留30天日志 -->

</rollingPolicy>

</appender>

<logger name="com.moerlong.hfw.dao" level="DEBUG" />

<root level="INFO">

<appender-ref ref="CONSOLE"/>

<appender-ref ref="FILE"/>

</root>

</configuration>

3、打印mybatis的sql语句

比较蠢的方法是直接把root标签的level属性改为DEBUG

?

1

2

3

4
<root level="DEBUG">

<appender-ref ref="CONSOLE"/>

<appender-ref ref="FILE"/>

</root>

这个改为DEBUG则会打印最详细的日志,包括mybatis的sql语句(量太大建议开发测试时才用)

SpringBoot项目的logback日志配置(包括打印mybatis的sql语句)

我们一般针对DAO的包进行DEBUG日志设置:

?

1
<logger name="com.moerlong.hfw.dao" level="DEBUG" />

这样的话,只打印SQL语句:

SpringBoot项目的logback日志配置(包括打印mybatis的sql语句)

4、代码里打印日志

之前我们大多数时候自己在每个类创建日志对象去打印信息,比较麻烦:

?

1

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

logger.error("xxx");

现在可以直接在类上通过 @Slf4j 标签去声明式注解日志对象
先在pom.xml中添加依赖:

?

1

2

3

4

5

6
<!--@Slf4j自动化日志对象-log-->

<dependency>

<groupId>org.projectlombok</groupId>

<artifactId>lombok</artifactId>

<version>1.16.16</version>

</dependency>

然后就直接可以使用了:

?

1

2

3

4

5
@Slf4j

@RestController

public class HfwController {

log.info("");

}

到此这篇关于SpringBoot项目的logback日志配置(包括打印mybatis的sql语句)的文章就介绍到这了,更多相关SpringBoot logback日志配置内容请搜索快网idc以前的文章或继续浏览下面的相关文章希望大家以后多多支持快网idc!

原文链接:https://blog.csdn.net/Abysscarry/article/details/80196628

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 SpringBoot项目的logback日志配置(包括打印mybatis的sql语句) https://www.kuaiidc.com/116869.html

相关文章

发表评论
暂无评论