Springboot项目JPA在控制台不打印SQL语句或参数

不管现实多么惨不忍睹,都要持之以恒地相信,这只是黎明前短暂的黑暗而已。不要惶恐眼前的难关迈不过去,不要担心此刻的付出没有回报,别再花时间等待天降好运。真诚做人,努力做事!你想要的,岁月都会给你。Springboot项目JPA在控制台不打印SQL语句或参数,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

解决网上那些设置了却不打印问题,按本教程操作绝√打印。

1 检查项目中是否有日志框架

Spring Data JPA是依赖日志框架从而在控制台打印日志,若你项目中没有引入日志框架无论你怎么配置show.sql都不会打印日志
在这里插入图片描述
举例

        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-core</artifactId>
        </dependency>

说明:你可能用的是slf4j-api和slf4j的实现,logback-classic只是同样也是slf4j-api,只不过是对其进行了改良。用slf4j无伤大雅,api和logback都是相同的,区别是实现不同。

2 开启配置

举例:

spring.jpa.database=mysql
spring.jpa.database-platform=mysql
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
spring.jpa.properties.hibernate.format_sql=true
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL8Dialect
logging.level.org.hibernate.type.descriptor.sql.BasicBinder=trace

此时重新启动项目可以看到控制台打印了日志。

3 若还是无法显示日志

引入的是logback,resource新建logback.xml配置文件:

	<configuration scan="true" scanPeriod="60 seconds" debug="false">
    <appender name="SQLROLLINGFILE">
        <File>/tmp/sql.log</File>
        <rollingPolicy>
            <FileNamePattern>logFile.%d{yyyy-MM-dd}.log</FileNamePattern>
        </rollingPolicy>
        <layout>
            <Pattern>%-4date | %msg %n</Pattern>
        </layout>
    </appender>

    <logger name="org.hibernate.SQL" additivity="false">
        <level value="DEBUG"/>
        <appender-ref ref="SQLROLLINGFILE"/>
    </logger>

    <logger name="org.hibernate.type" additivity="false">
        <level value="TRACE"/>
        <appender-ref ref="SQLROLLINGFILE"/>
    </logger>

	 <logger name="org.hibernate.type.descriptor.sql.BasicBinder" level="TRACE"/>

</configuration>

如果引入的日志框架是log4j2,同样在resource下加入配置文件log4j2.properties:

monitorInterval=30
status=INFO

appender.console.type = Console
appender.console.name = STDOUT
appender.console.layout.type = PatternLayout
appender.console.layout.pattern = %d %p [%t] %C{3.}.%M(%L) %m%n

rootLogger.level = info
rootLogger.appenderRef.stdout.ref = STDOUT

log4j.logger.org.hibernate.SQL=debug

log4j.logger.org.hibernate.type=trace

如果你的SpringBoot项目没用application.yml配置文件启动项目

那么请在resource下加上application.yml配置文件,并添加属于日志框架的配置:

	logging:
	  level:
	    org.hibernate.SQL: DEBUG
	    org.hibernate.type: TRACE

至于JPA部分,看你项目中是怎么配置JPA的,在同样的地方加上第一步的JPA show sql的配置。

4 最后

重启项目,此时一定会打印日志,如果没有,请检查依赖,或删除缓存(编译target等)重启。
语句:
在这里插入图片描述
参数:
在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/180310.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!