我已经设置了
<property name="show_sql">false</property>
我已经禁用了log4j.properties
中的所有邮件但Hibernate使用所有查询写入控制台&amp;语句。
答案 0 :(得分:23)
将hibernate.show_sql
设置为true
告诉hibernate 将所有SQL语句写入控制台。这是将日志类别org.hibernate.SQL
设置为调试的替代方法。
因此,即使您将此属性设置为false
,也请确保未定义以下类别(或配置为使用控制台appender):
log4j.logger.org.hibernate.SQL=DEBUG
此外,确保在实例化hibernate.show_sql
对象时,不要以编程方式将Configuration
设置为true。找到这样的事情:
Configuration cfg = new Configuration().configure().
.setProperty("hibernate.show_sql", "true");
请注意,setProperty(String propertyName, String value)
将第一个参数作为配置属性的全名,即hibernate.show_sql
,而不只是show_sql
。
答案 1 :(得分:2)
在那里,我发现你可以用log4j.properties文件中的这2行来解决这个问题。
log4j.logger.org.hibernate = WARN
log4j.logger.org.hibernate = ERROR
答案 2 :(得分:1)
你向log4j.properties添加了这样的东西吗?
log4j.logger.org.hibernate = WARN
答案 3 :(得分:0)
看起来很奇怪,但是当使用Eclipse和JUnit Test任务时,所有输出仍然转到控制台(在Eclipse控制台窗口中)。
但是当我使用ant命令进行单元测试时,没有任何东西可以用于控制台。
答案 4 :(得分:0)
如前所述,您需要先将hibernate.show_sql
设置为false
。这将阻止hibernate输出到控制台或Tomcat stdout日志。
但是为了将您的sql输出定向到另一个日志,请在log4j.xml文件中使用此代码:
<logger name="org.hibernate.SQL" additivity="false">
<level value="DEBUG" />
<appender-ref ref="hibernate"/>
</logger>
要将正常的休眠日志级别(WARN / ERROR)保持到控制台,请在log4j.xml文件中使用此代码:
<category name="org.hibernate">
<priority value="WARN" />
</category>
答案 5 :(得分:0)
它简单的Just add依赖于你的pom.xml文件
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
它将禁用日志记录并在src / main / resources / log4j.properties文件中添加put
log4j.rootLogger=OFF
然后你可以随时使用它,如果你想显示登录控制台然后在它上面或否则关闭