2011-07-14 116 views
1

我正在使用hibernate作爲ORM工具。它工作正常,但問題是,我正在控制檯上獲得休眠日誌,而不是我想在日誌文件中。我試着用下面的代碼。如何在日誌文件中獲得休眠日誌

LogManager.resetConfiguration(); 
PropertyConfigurator.configureAndWatch("D:\\Workspace\\Project\\log4j.properties"); 

和屬性文件看起來像:

log4j.rootLogger=FATAL, HIBERNATEFILE 

log4j.appender.HIBERNATEFILE=org.apache.log4j.DailyRollingFileAppender 
log4j.appender.HIBERNATEFILE.file=H:/Project/Hibernate.log 
log4j.appender.HIBERNATEFILE.layout=org.apache.log4j.PatternLayout 
log4j.appender.HIBERNATEFILE.layout.ConversionPattern=%d{dd MMM yyyy HH:mm:ss} %c | %m%n 

log4j.category.org.hibernate=DEBUG, HIBERNATEFILE 
log4j.additivity.org.hibernate=false 

的Java代碼,我寫之前,我打電話冬眠創建配置。我得到了所有我已經正確記錄在我的項目中的語句,但是我需要在日誌文件中使用休眠日誌。

我錯過了什麼嗎?

回答

2

看一看here或在documentation,你需要告訴log4j看什麼包/類別。

例如...

log4j.logger.org.hibernate=HIBERNATEFILE 
log4j.additivity.org.hibernate.SQL=false 
log4j.logger.org.hibernate.type=TRACE,HIBERNATEFILE 
+0

我我試着用你的建議。但它沒有奏效。仍然在控制檯上獲取日誌。 –

+0

您是否可以更新您的答案以包含該類別的日誌類別和appender? –

+0

更新。請檢查 –

0

我相信Hibernate的輸出到控制檯通過您設置hibernate.show_sql爲true造成的。您應該關閉它並配置Hibernate將SQL日誌記錄到log4j/sl4j日誌中。