【问题标题】:Hibernate Queries logging should be avoided?应该避免休眠查询日志记录?
【发布时间】:2012-09-04 13:12:11
【问题描述】:

我正在为我的项目使用 JPA ...

我的问题是:Whenever we are executing some query using the JPA the query is logged in the server.log file of the **JBOSS** . 我正在使用 Jboss log4J。

但我想避免在 server.log 文件中打印查询。 不更改以下属性:

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

相反,我尝试了:

<category name="org.hibernate">
        <priority value="ERROR" />
    </category>

log4j.xml 中,即使查询正在控制台或 server.log 中记录以进行成功查询。

谁能帮我解决这个问题...?

我必须在哪里更改配置以避免 server.log 中的查询记录?

【问题讨论】:

  • 这是一个很奇怪的要求,您是否将它们记录到另一个文件中?否则为什么要给应用程序带来开销?
  • @ssedano 是的,根据我们正在登录不同日志的标准...
  • 好的,请粘贴log4j.xml的相关部分
  • @ssedano ,我已经在 log4j.xml 中粘贴了与 hibernate 相关的代码...上面的 sn-p 是我在 log4j.xml 中使用的唯一代码

标签: hibernate logging jboss5.x jboss-tools


【解决方案1】:

您可能很难做到这一点。

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

实际上是一个开发设置,它将生成的 SQL 写入标准输出而不是您的记录器。

查看org.hibernate.jdbc.util.SQLStatementLogger 进行确认。

将 SQL 记录到您配置的日志记录机制是完全不同的事情,写入到org.hibernate.SQL

因此,为了避免在需要设置的任何地方编写 SQL:

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

并使用以下日志设置:

<category name="org.hibernate">
  <priority value="INFO" />
</category> 

【讨论】:

  • 感谢您的回答...如果我没有错,如果我们使用 value="INFO" 那么也会打印日志...我想要的是我不想打印查询日志...我也尝试了上述方法,但失败了:(
  • 是的,我已经设置了......但仍然能够看到登录控制台的查询
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-04-17
  • 2017-08-23
  • 1970-01-01
  • 2015-04-07
  • 1970-01-01
  • 1970-01-01
  • 2012-09-13
相关资源
最近更新 更多