2010-01-16 21 views
21

我已經設置不能停止寫日誌休眠到控制檯(log4j.properties是確定)

<property name="show_sql">false</property> 

,我禁用了log4j.properties

的所有消息,但休眠寫控制檯與所有查詢&陳述。

+0

我有同樣的問題,任何時候使用它。我已經設置了log4j.logger.org.hibernate = INFO和 false,但我仍然將hibernate SQL添加到我的日誌文件中。我在我的項目中搜索了「show_sql」和「log4j」中的所有內容,以查找其他任何引用,但沒有任何引用。是否有另一種方法來打開休眠日誌記錄? – Tauren 2010-03-02 08:28:12

+1

對不起,但我錯了 - 做我提到的事情做刪除所有SQL日誌記錄。我發現我正在使用的第三方庫有這條硬編碼的代碼:System.out.println(hql);讓人驚訝。 – Tauren 2010-03-02 09:02:04

+0

可能的重複[不能使休眠停止顯示SQL使用Spring JPA供應商適配器](http://stackoverflow.com/questions/679518/cant-make-hibernate-stop-showing-sql-using-spring-jpa-供應商適配器) – 2013-04-24 08:42:20

回答

22

設置hibernate.show_sqltrue告訴Hibernate 所有SQL語句到控制檯。這是設置日誌類別org.hibernate.SQL進行調試的替代方法。

所以,即使你這個屬性設置爲false,確保您不會有以下類別定義(或配置爲使用控制檯的appender)的更多信息:

log4j.logger.org.hibernate.SQL=DEBUG 

此外,請確保您在實例化您的Configuration對象時,請勿將程序設置爲hibernate.show_sql爲true。亨特是這樣的:

Configuration cfg = new Configuration().configure(). 
    .setProperty("hibernate.show_sql", "true"); 

注意,setProperty(String propertyName, String value)需要作爲第一個參數配置屬性,即hibernate.show_sql的全名,而不只是show_sql

+0

@Pascal:請參閱我對該問題的評論。你已經建議的一切,我已經看過。你還有其他建議嗎? – Tauren 2010-03-02 08:28:52

+0

我使用logback(加上slf4j)並添加到我的logback配置文件中: \t \t ' – 2014-03-11 14:31:08

1

你給log4j.properties添加這樣的東西?

log4j.logger.org.hibernate = WARN 
0

看起來很奇怪,但是當使用Eclipse與JUnit Test任務時,所有輸出仍然會轉到控制檯(在Eclipse Console窗口中)。

但是,當我使用ant命令進行單元測試時,沒有任何事情發生在控制檯上。

2

你好,我想你可以用你的log4j.properties文件中的這兩行來解決這個問題。

log4j.logger.org.hibernate = WARN 
log4j.logger.org.hibernate = ERROR 
0

正如前面提到的,你需要先設定hibernate.show_sqlfalse。這將阻止休眠輸出到控制檯或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> 
0

其簡單隻需添加依賴你pom.xml文件

<dependency> 
<groupId>log4j</groupId> 
<artifactId>log4j</artifactId> 
<version>1.2.17</version> 

它會禁用日誌並添加到src/main/resources/log4j中。屬性文件

log4j.rootLogger=OFF 

然後,你可以,如果你想顯示登錄控制檯然後在其上,否則OFF