SpringbootDruid使⽤Slf4j输出可执⾏SQL
前⾔
在开发中,为了数据安全,所有SQL语句肯定是⽤占位符的,但是在实际开发中,为了⽅便追踪问题,经常需要查看具体执⾏的SQL语句内容,⽽⽤了占位符之后,每次真实执⾏的语句只能靠⾃⼰根据参数拼接出来,耗时耗⼒,所以需要⼀个⽅法输出每次执⾏的SQL语句,并且还是有参数的(替换了占位符),⽽Druid就⽀持此功能(Druid的主要功能可不是这个),所以此⽂主要讲Springboot环境下使⽤Druid输出可执⾏SQL,并且是使⽤的Springboot的默认⽇志配置格式,因为⼀旦修改了Springboot的⽇志配置格式,输出来的⽇志⼀般是没有颜⾊区分的,如下:
⽽springboot默认配置的⽇志如下:
当然也可以⾃⼰配置出来颜⾊,只是我个⼈觉得springboot的默认配置已经很好看了,不⽤再配置了
当然Springboot配置Druid输出可执⾏的SQL⽂档太多了,只是他们都需要配置⽇志本⾝,也就是配置后⽇志输出的样⼦我不喜欢,所以各种研究后,才有了此⽂(之前百度是真没有到⽤默认配置输出的⽅法)
Druid 介绍
Druid是Java语⾔中最好的数据库连接池。Druid能够提供强⼤的监控和扩展功能。以上是官⽅的⾃我介绍,也侧⾯说明了Druid是⼀个功能强⼤,⾃带监控扩展的数据库连接池,具体想了解Druid的话建议去了解
配置
druid连接池配置详解使⽤Springboot默认的⽇志配置⽂件,意味着就没有log4j.properties之类的⽂件给我们配置了,那就只有在l或者application.properties中配置springboot告诉它我们哪些地⽅需要打印⽇志,需要打印什么级别的⽇志
⾸先要配置连接池为Druid
spring:
application:
name: admin-managee
datasource:
druid:
url: jdbc:mysql://localhost/test?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=C TT
username: test
password: test
driver-class-name: sql.cj.jdbc.Driver
使⽤Druid连接池跟之前不同的是多了⼀层druid,⽽其他的配置则是⼀样的
⽽之前⽤代码或者xml配置druid都在druid这个层级下,包括输出可执⾏SQL如下:
filters: stat,wall,stat,slf4j,default
web-stat-filter:
enabled: true
url-pattern: /*
exclusions: "*.js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/druid/*"
stat-view-servlet:
enabled: true
url-pattern: /druid/*
reset-enable: true
login-username: Raye
login-password: 123456
filter:
slf4j:
enabled: true
statement-create-after-log-enabled: false
statement-log-enabled: false
statement-executable-sql-log-enable: true
statement-log-error-enabled: true
result-set-log-enabled: false
其中只要statement-executable-sql-log-enable配置为true,则可以输出可执⾏SQL,当然如果不想⽤slf4j输出⽇志,⽤log4j只需要吧slf4j替换成log4j即可,不过还是推荐使⽤slf4j,⾄于为什么使⽤slf4j,百度很多⼈都已经说的很好了,另外druid的其他配置说明也请移步专业的druid⽂章,他们写的更加详细,另外还需要指定druid的⽇志登记为debug才能显⽰
完整配置如下:
spring:
application:
name: admin-managee
datasource:
druid:
url: jdbc:mysql://localhost/test?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=C TT
username: test
password: test
driver-class-name: sql.cj.jdbc.Driver
filters: stat,wall,stat,slf4j,default
web-stat-filter:
enabled: true
url-pattern: /*
exclusions: "*.js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/druid/*"
stat-view-servlet:
enabled: true
url-pattern: /druid/*
reset-enable: true
login-username: test
login-password: 123456
filter:
slf4j:
enabled: true
statement-create-after-log-enabled: false
statement-log-enabled: false
statement-executable-sql-log-enable: true
statement-log-error-enabled: true
result-set-log-enabled: false
logging:
level:
druid:
sql:
Statement: debug
the end

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。