我的log4j配置缺少org.hibernate.cfg.annotations.Version所需的内容?

时间:2014-01-29 19:50:06

标签: java hibernate logging log4j

我正在试图弄清楚为什么我们的Hibernate代码没有记录任何东西到log4j。我整理了一个简单的项目,它调用一个Hibernate服务方法,将log4j消息记录为第一行。

项目和Hibernate服务都有以下log4j特定代码:

private static Logger NTEVENT_LOG = Logger.getLogger("NTEVENT");
NTEVENT_LOG.debug("==== LOG4J logging");

当我运行项目(Eclipse-> run)时,我得到以下红色信息:

log4j:WARN No appenders could be found for logger (org.hibernate.cfg.annotations.Version).
log4j:WARN Please initialize the log4j system properly.

但是当我看到来自应用程序本身的日志记录后,立即对log4j的某些部分进行了正确的初始化。但是,Hibernate服务没有记录任何内容。

[main] DEBUG NTEVENT  - ==== LOG4J logging

这是我的log4j.xml

<appender name="NTEVENT" class="org.apache.log4j.ConsoleAppender"> 
    <layout class="org.apache.log4j.PatternLayout"> 
        <param name="ConversionPattern" value="%-4r [%t] %-5p %c %x - %m%n"/> 
    </layout> 
</appender> 

<root> 
    <priority value ="debug" /> 
    <appender-ref ref="NTEVENT" /> 
</root>

我必须遗漏Hibernate期待的东西,但我不知道是什么。

3 个答案:

答案 0 :(得分:0)

要使用xml文件配置log4j,您需要在main中使用DOMConfigurator.configure()方法。

此方法也需要导入 org.apache.log4j.xml.DOMConfigurator 包。

public static void main(String[] args) {

DOMConfigurator.configure("log4j.xml");

..//your code
..
}

希望这会有所帮助.. !!

答案 1 :(得分:0)

问题是因为ThrashBean暗示,未启用org.hibernate的日志记录。如果你想查看Hibernate调试输出,例如查询,你需要:

             

答案 2 :(得分:0)

我终于得到了我案件中发生的事情。它也可能帮助Netbeans用户遇到同样问题,因为我已经失去了很多头发已经有好几个月了。我的应用程序刚刚停止登录到控制台,所以我无法调试,因为没有显示错误。

答案“在不同位置的库中有两个log4j jar文件。”是真的。最初我原本希望找到名为log4xxx.jar的2个文件,当然有不同的版本号,但根本没有这样的文件。您可以看到Netbeans预装了Hibernate库和许多其他库。因此,当在Netbeans中开发hibernate应用程序时,您不需要手动添加自己的Hibernate Jars,除非您需要特定版本等,您只需通过右键单击项目将Hibernate库添加到您的应用程序中 - 属性 - 库 - 添加库按钮。这将在运行时在后台/类路径中添加许多hibernate Jars,也在dist / lib文件夹中添加,而不是在应用程序的lib中。在我的情况下,我添加了Hibernate库并将生成的hibernate jar从dist / lib复制到lib。这是错误的,因为我从以前的应用程序中复制了库,以包含在我的新应用程序中使用。

所以带回家点,如果在Netbeans中,转到你的lib文件夹,如果你看到罐子就好 hibernate-commons-annotations-x.x.x.Final.jar,hibernate-core-x.x.x.Final.jar,hibernate-entitymanager-x.x.x.Final.jar,hibernate-jpa-2.0-api-x.x.x.Final.jar,hibernate-tools-x.x.x.CR1.jar 删除它们并检查错误是否已解决。