当前位置:编程学习 > JAVA >>

log4j:WARN No appenders could be found for logger (org.hibernate.cfg.annotations

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

自学hibernate,看的是尚学堂,马士兵的hibernate3.3.2的视频,在构建log4j这个日志时候由于出现了问题后,我重头一步一步的按照马老师的步骤进行,下了和老师一样的架包,不过我用的是eclipse 3.5的,mysql 6.0  。



1.
hibernate.cfg.xml:
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
        "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<hibernate-configuration>

    <session-factory>

        <!-- Database connection settings -->
        <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="connection.url">jdbc:mysql://localhost/hibernate</property>
        <property name="connection.username">root</property>
        <property name="connection.password">364200</property>

        <!-- JDBC connection pool (use the built-in) -->
        <property name="connection.pool_size">1</property>

        <!-- SQL dialect -->
        <property name="dialect">org.hibernate.dialect.MySQLDialect</property>

        <!-- Enable Hibernate's automatic session context management -->
        <property name="current_session_context_class">thread</property>

        <!-- Disable the second-level cache  -->
        <property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>

        <!-- Echo all executed SQL to stdout -->
        <property name="show_sql">true</property>
        <property name="format_sql">true</property>

        <!-- Drop and re-create the database schema on startup -->
        <property name="hbm2ddl.auto">update</property>

        <mapping class="com.geolo.hibernate.model.Teacher"/>
    </session-factory>
</hibernate-configuration>


2.
teacher.java

package com.geolo.hibernate.model;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;

@Entity
public class Teacher {
   private int id;
   
   private String name;
   private String title;
   
@Id
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}

@Column
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}

@Column
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
}




3.
teachertest.java

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.cfg.Configuration;

import com.geolo.hibernate.model.Student;
import com.geolo.hibernate.model.Teacher;


public class TeacherTest {
   public static void main(String[] args){
    Teacher t = new Teacher();
    t.setId(111);
    
    t.setName("huhu");
    t.setTitle("p");
   
   Configuration cfg = new AnnotationConfiguration();
   
   SessionFactory sf = cfg.configure().buildSessionFactory();
   Session session = sf.openSession();
   session.beginTransaction();
   session.save(t);
   session.getTransaction().commit();
   session.close();
   sf.close();
   }
}


--------------------编程问答-------------------- log4j没配对。不影响程序运行的。 --------------------编程问答-------------------- 楼主在开发阶段加不加log4j对项目都不会起到多大作用,但在发布时最好加上,而且它的警告是很正常的。 --------------------编程问答-------------------- 我知道,log4j的警告并不会影响最后程序的运行,只是我觉得,有个日志来记录我的运行过程是个很好的事情,我可以了解程序的生成机制。我是按照视频下载的架包和建立了包库的。要有有人和我一样的问题,请转告我下,谢谢!
邮箱:andongny@vip.qq.com --------------------编程问答-------------------- 应该是log4j的配置文件没有找到。 --------------------编程问答-------------------- log4j.properties没有配置 --------------------编程问答-------------------- 将log4j.properties这个文件拷到那个src下面就OK啦,如果没有,google一下就可以啦,也许会有很多个,建议用那个内容很长的,你看了马哥的教程应该知道的!! --------------------编程问答--------------------
引用 6 楼 niuge798588567 的回复:
将log4j.properties这个文件拷到那个src下面就OK啦,如果没有,google一下就可以啦,也许会有很多个,建议用那个内容很长的,你看了马哥的教程应该知道的!!
--------------------编程问答-------------------- 没导入log4j.jar,没写对应的log4j.properties配置文件 --------------------编程问答--------------------
引用 5 楼 zl3450341 的回复:
log4j.properties没有配置

对 --------------------编程问答-------------------- 木有配置 log4j.properties  --------------------编程问答-------------------- log4j配置文件  --------------------编程问答-------------------- nothing  --------------------编程问答-------------------- 同样的配置 如果没用annotation 是运行正常的 --------------------编程问答-------------------- 楼上的都是浑水摸鱼吗?
让我来给终结一下吧
log4j:WARN No appenders could be found for logger (XXXXX).
log4j:WARN Please initialize the log4j system properly.
一般情况下,说明你的log4j.properties内容或位置配置不当,但不会影响你的其他操作。
so,有2种方法参考一下:
第一,修改你的log4j.properties文件,大概如下:

# Configure logging for testing: optionally with log file
log4j.rootLogger=WARN, stdout
# log4j.rootLogger=WARN, stdout, logfile

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n

log4j.appender.logfile=org.apache.log4j.FileAppender
log4j.appender.logfile.File=target/spring.log
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n



第二,挪挪log4j.properties的地方,1是按照官方的英文说明应该首选放在src下的或者部署的路径下,2是放在指定路径下如WEB-INF/config/log4j.properties,这时,你就需要在web.xml里指定路径了,参考配置代码:
<!-- Log4J的配置信息 -->
<context-param>
<param-name>webAppRootKey</param-name>
<param-value>logs.root</param-value>
</context-param> 
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>/WEB-INF/log4j.properties</param-value>
</context-param>
<context-param>
<param-name>log4jRefreshInterval</param-name>
<param-value>60000</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>

在此,强烈建议放在src下,换路径配置时不能保证没有警告信息。 --------------------编程问答-------------------- logger没有找到
log4j.rootLogger=debug,logger注意这个地方(logger)
log4j.appender.logger=org.apache.log4j.DailyRollingFileAppender
log4j.appender.logger.File=E:/logs/DataTransfer.log
#log4j.appender.logger.File=${catalina.home}/logs/SupportWS.log
#log4j.appender.logger.MaxFileSize=10MB
#log4j.appender.logger.MaxBackupIndex=1000
log4j.appender.logger.layout=org.apache.log4j.PatternLayout
log4j.appender.logger.layout.ConversionPattern=[DataTransfer][%d{yyyy-MM-dd HH\:mm\:ss}][%l]\:%m%n --------------------编程问答-------------------- 谢谢大家!看来这个问题很多人碰到! --------------------编程问答-------------------- 最佳答案:因为你把这句给注释掉了 打开就没问题了  我也出的这个毛病
log4j.rootLogger=warn, stdout
补充:Java ,  Web 开发
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,