2012-03-13 43 views
0

我使用休眠3.2.5.ga並有切斷難以建立log4j日誌記錄。我試圖在這個線程的一切:Configuring Hibernate logging using Log4j XML config file?休眠記錄驅使我瘋狂

總結:這裏是我的log4j.xml

在我的hibernate.properties我有

<appender name="HibernateAppender" class="org.apache.log4j.FileAppender"> 
    <param name="File" value="hibernate.log" /> 
    <layout class="org.apache.log4j.PatternLayout"> 
     <param name="ConversionPattern" value="%d %-5p [%t] [Acc=%X{MDCKey.Account}] [Oppo=%X{MDCKey.Opportunity}] [URL=%X{MDCKey.Url}] [Dest=%X{MDCKey.Dest}] (%F:%L) - %m%n"/> 
    </layout>  
</appender> 
<logger name="org.hibernate"> 
<level value="debug" /> 
<appender-ref ref="HibernateAppender"/> 
</logger> 

<root> 
    <priority value="info" /> 
    <appender-ref ref="Log"/> 
    <appender-ref ref="DailyRollover"/> 
    <appender-ref ref="ErrorCaptureAppender"/> 
</root> 

在我的hibernate.properties我還設置:

hibernate.show_sql true 

當我調試代碼時,我看到hibernate將其日誌記錄委託給slf4j類。當我調試這些類時,我看到方法的空實現。例如:org.slf4j.impl.NOPLogger對其日誌方法具有空實現。我認爲這是問題。

在我的行家,我有:

<dependency> 
     <groupId>org.slf4j</groupId> 
     <artifactId>slf4j-api</artifactId> 
     <version>1.5.2</version> 
     <optional>false</optional> 
    </dependency> 

所以這是SLF4J的版本我使用。請注意,我已經嘗試了log4j.xml的各種配置,例如明確地將appender添加到根目錄。只是真的卡住了。

任何提示?

回答

2

我想你錯過了正確的「SLF4J綁定」jar,它與您的日誌框架(即您的情況下的log4j)匹配,以便將SLF4J API的所有日誌記錄調用委託給log4j。

嘗試添加下面以下載log4j的結合(即slf4j-log4j12-1.5.2.jar

<dependency> 
     <groupId>org.slf4j</groupId> 
     <artifactId>slf4j-log4j12</artifactId> 
     <version>1.5.2</version> 
</dependency> 

當然,也請您確認您已經包含在Maven依賴log4j的。

+0

偉大的答案 - 工作。 – dublintech 2012-03-13 13:19:21