2012-03-13 54 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