关闭控制台休眠日志记录

19

当我运行我的Spring/Hibernate应用程序时,我在控制台上看到以下不需要的输出:

Hibernate: select securityus0_.ID ....
Hibernate: select securityus0_.ID ....
Hibernate: select securityus0_.ID ....
Hibernate: select securityus0_.ID ....

我已经这样配置了我的Log4j记录器:

   <logger name="org.hibernate">
     <level value="FATAL"/>
   </logger>

   <category name="STDOUT">
      <priority value="WARN"/>
   </category>
   <category name="STDERR">
      <priority value="WARN"/>
   </category>   

   <!-- for all other loggers log only info and above log messages -->
   <root>
      <priority value="WARN"/> 
      <appender-ref ref="STDOUT" /> 
   </root>

我该如何消除这些消息?

5个回答

39

我相信你看到这些SQL语句是因为在你的Hibernate配置中,"hibernate.show_sql" 属性被设置为true。找到该设置并将其改为false。


1
我没有hibernate配置文件。我正在使用Hibernate注解与Spring 3一起。 - Croydon Dias
2
请检查您的Spring配置中声明SessionFactory的部分。'hibernate.show_sql'属性通常在SessionFactory的'hibernateProperties'中设置。 - teabot
5
hibernate.show_sql属性也可以在AbstractJpaVendorAdapter.setShowSql(Boolean)/ HibernateJpaVendorAdapter.setShowSql(Boolean)中设置。 - Abdull

5
如果您有一个persistence.xml文件,请尝试在那里查找。那是我找到它的地方。

我在那里有 <property name="eclipselink.logging.level" value="ALL"/>。可以选择INFO、CONFIG等级别,以减少日志记录。 - Cheeso

5

在 applications.properties 文件中将以下内容设置为 false:

spring.jpa.show-sql=false

它将关闭休眠消息。


1
通过添加以下内容解决了这个问题:

<property name="hibernate.show_sql" value="false"/>

在 persistence.xml 文件中,如果您有一个的话。


0
如果您正在使用基于配置的application.yml文件,则可以在jpa属性下找到属性show-sql:true

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接