log4j hibernate错误

时间:2011-03-30 17:19:49

标签: hibernate log4j

配置我的hibernate时出现此错误

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

这是代码行

Configuration config = new AnnotationConfiguration().configure("HibernatePositionServer.cfg.xml");

这是我的cfg文件

<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
    "-//Hibernate/Hibernate Configuration DTD//EN"
    "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
    <!--<property name="connection.url">jdbc:mysql://[Here i put correct IP:Port]/settings</property>-->
    <!--<property name="connection.url">jdbc:mysql://127.0.0.1:1433/settings</property>-->

    <property name="connection.driver_class">org.gjt.mm.mysql.Driver</property>
    <property name="connection.username">root</property>
    <property name="connection.password">Programa17</property>

    <property name="connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</property>
    <property name="hibernate.c3p0.timeout">300</property>
    <property name="hibernate.c3p0.idle_test_period">150</property>
    <property name="hibernate.c3p0.min_size">1</property>
    <property name="hibernate.c3p0.max_size">1</property>

    <!-- DB schema will be updated if needed -->
    <property name="hibernate.show_sql">true</property>
    <property name="hbm2ddl.auto">update</property>
    <!--<property name="hbm2ddl.auto">update</property>-->
    <property name="dialect">org.hibernate.dialect.MySQL5Dialect</property>

</session-factory>

3 个答案:

答案 0 :(得分:7)

首先询问Google,这是最常见的Log4J错误消息之一。简单地说:Log4J(日志记录和监视框架)从Hibernate收到一条日志消息,不知道该怎么做(在控制台打印,放入文件,忽略......?)

将名为log4j.xml的文件放入CLASSPATH根目录(使用maven时为src/main/resource),其中包含以下内容:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
  <appender name="console" class="org.apache.log4j.ConsoleAppender"> 
    <param name="Target" value="System.out"/> 
    <layout class="org.apache.log4j.PatternLayout"> 
      <param name="ConversionPattern" value="%-5p %c{1} - %m%n"/> 
    </layout> 
  </appender> 

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

</log4j:configuration>

答案 1 :(得分:0)

我遇到了同样的错误。导致此错误的原因有两个

  1. 您库中的不同位置有两个log4j jar文件。

  2. 属性文件log4j.properties不在应用程序内的默认包中。

  3. 为什么弹出这个错误的是hibernate.config,而log4j应该在同一个包中

答案 2 :(得分:0)

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

答案&#34;您的库中有不同位置的两个log4j jar文件。&#34;是真的。最初我原本希望找到名为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 删除它们并检查错误是否已解决。