目录
上一篇描述了Druid整合Spring Boot时遇到的一些问题, 以及推荐的一些配置, 这篇则主要讲Druid的日志
日志篇
Druid中使用log4j2进行日志输出
在开发环境调试代码,往往需要打印执行的SQL语句来判断SQL语句是否符合预期,尤其是我们的SQL语句使用了较多的
标签时,只有真正的执行到了标签解析器后,才能生成最终的SQL语句;当遇到SQL语句看似解析正常但是执行的时候却报错,在这个时候如果SQL日志没有打印,将会是非常头疼的。
- 添加pom版本依赖(注意此处需要logging依赖, 原因是默认使用了Slf4j + Logback 进行日志记录)
<!--Spring-boot中去掉logback的依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<!--log4j2 日志-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j2</artifactId>
</dependency>
- 添加 Druid filter配置
spring:
datasource:
druid:
filters: stat,slf4j
# filter 配置 (此部分官网没有详细说明 故有错误请谅解)
filter:
slf4j:
enabled: true
# 不显示创建语句之前和执行完成之后的日志 (无论开启与否都不会放到sql文件中, 此处的配置更多是优化debug的输出,避免大量无意义的日志被记录)
statement-create-after-log-enabled: false
statement-close-after-log-enabled: false
# 不显示返回结果之前和之后的日志
result-set-open-after-log-enabled: false
result-set-close-after-log-enabled: false
# 以下是关闭断开连接的日志显示
connection-close-after-log-enabled: true
connection-connect-after-log-enabled: false
connection-connect-before-log-enabled: false
- log4j2.xml 日志配置 (如resources下无此文件自行新建)
运行项目即可,会自动在项目下创建日志文件夹
MyBatis 日志打印 (占坑)
如果使用了MyBatis作为持久层框架, 则可以使用MyBatis的日志输出
需要关闭Druid控制台输出才可以使用MyBatis的日志输出 (关闭输出后日志文件仍然会记录)
“`yml
# 此配置只做控制台的日志输出, 如需保存日志 后续再开一个坑
mybatis:
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
“`