我正在使用hibernate 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添加到root。真的卡住了。
任何提示?
答案 0 :(得分: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。