场景:项目开发中,为了方便调试和排查问题,需要打印sql日志,并且显示sql中占位符所代表的参数;
第一种:如果只需简单打印sql日志【一般使用】
spring:
jpa:
show-sql: true
第二种:需要打印详细的sql日志【建议使用】
第一步:导入maven依赖
<!--打印sql日志-->
<dependency>
<groupId>com.googlecode.log4jdbc</groupId>
<artifactId>log4jdbc</artifactId>
<version>1.2</version>
</dependency>
第二步:修改yml配置文件
spring:
datasource:
driverClassName: net.sf.log4jdbc.DriverSpy #或net.sf.log4jdbc.sql.jdbcapi.DriverSpy
url: jdbc:log4jdbc:mysql://localhost:3306/数据库 #用于打印sql日志
#driver-class-name: com.mysql.cj.jdbc.Driver
#url: jdbc:mysql://localhost:3306/数据库
username: root
password: 123456
第三步:启动项目后执行sql语句就可以看到sql日志打印出来了、、、
第四步:(以下配置看要求是否需要添加,不添加也可以)
1、在resources目录新增log4jdbc.log4j2.properties文件并编辑内容
# If you use SLF4J. First, you need to tell log4jdbc-log4j2 that you want to use the SLF4J logger
log4jdbc.spylogdelegator.name=net.sf.log4jdbc.log.slf4j.Slf4jSpyLogDelegator
2、可以通过logbak.xml文件优化显示数据,编辑内容
<!--sql日志输出 -->
<logger name="jdbc.sqlonly" level="INFO" additivity="false">
<appender-ref ref="console" />
</logger>
<logger name="jdbc.resultset" level="ERROR" additivity="false">
<appender-ref ref="console" />
</logger>
<!--将不必要显示的隐藏掉-->
<logger name="jdbc.connection" level="OFF" additivity="false">
<appender-ref ref="console" />
</logger>
<!--将不必要显示的隐藏掉-->
<logger name="jdbc.sqltiming" level="OFF" additivity="false">
<appender-ref ref="console" />
</logger>
<!--将不必要显示的隐藏掉-->
<logger name="jdbc.audit" level="OFF" additivity="false">
<appender-ref ref="console" />
</logger>
版权归原作者 oh my gald 所有, 如有侵权,请联系我们删除。