1. 通过分析log4j源码的类LogManager可以发现,此类有一个静态块,正是此静态块中的代码来加载放在classpath下配置文件log4j.properties或log4j.xml
   而静态块是在类加载的时候就会执行,所以放在src下,也就是classpath下的配置文件会器作用的原因
2. 在web.xml文件配置的方式是加载log4j配置的另外一种方式
具体可以参考文章:http://blog.csdn.net/javaloveiphone/article/details/7994313
    不过想要理解此方法的原理,还是要跟踪源码的,比如从监听器入手org.springframework.web.util.Log4jConfigListener,一个类一个方法的仔细查看。

解决方案 »

  1.   

    推荐你用logback(log4j的升级版)
      

  2.   


    多谢,等log4j上手后,一定去学习下logback
      

  3.   

    log4j 默认是从 classpath 中找 /log4j.properties 文件,找到了就用它,对于其它的位置的配置,我们需要明确地设置。默认它是看如果是 xml 文件名结尾就用 xml 方式配置,其它格式全假设为 properties 格式。http://logging.apache.org/log4j/1.2/manual.html用相对目录也行,但要注意,它不帮我们自己生成缺少的目录,也就是说如果这个 ./logs 目录本身不存在时会出错的,有错误消息打印出来的,但程序不会停止。
      

  4.   


    解决了,实际上是log4j默认的日志生成目录是在tomcat/bin目录下,而且也会自动生成缺少的目录,如tomcat/bin/log/dip.log
      

  5.   

    Log4j是Apache的一个开放源代码项目,我们使用来控制日志输出的级别还有地方等
    给你个地址吧.讲的比较详细 而且也还不错
    http://v.youku.com/v_show/id_XNTk4ODk3MTI=.html
    参考的百度,