配置我的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>
答案 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)
我遇到了同样的错误。导致此错误的原因有两个
您库中的不同位置有两个log4j jar文件。
或强>
属性文件log4j.properties
不在应用程序内的默认包中。
为什么弹出这个错误的是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 删除它们并检查错误是否已解决。