问题如下:

在处理这个问题的时候,在探索这个问题的时候,将网上的问题和解决方法汇总下:
首先问题可能出现的地方
1.log4j的配置文件 xml properties 存在问题
网上有说 由于配置文件不全导致该问题。我尝试了一下,与我的问题不相符合。贴一下我的配置文件,我用的是.properties
##配置文件log4j.properties
### 设置###
log4j.rootLogger = debug,stdout,D,E
### 输出信息到控制抬 ###
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target = System.out
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n
### 输出DEBUG 级别以上的日志到=E://Java//LogTest2//logs/error.log ###
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = G://logs/log2.log
log4j.appender.D.Append = true
log4j.appender.D.Threshold = DEBUG
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
### 输出ERROR 级别以上的日志到=E://Java//LogTest2//logs/error.log ###
log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
log4j.appender.E.File =G://logs/log2.log
log4j.appender.E.Append = true
log4j.appender.E.Threshold = ERROR
log4j.appender.E.layout = org.apache.log4j.PatternLayout
log4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
2.配置文件放置位置不对
该方法无法解决我的问题
idea maven项目中,配置文件.xml .properities 等文件放在resources中.
eclipse下的maven项目中,src/main/java目录下不仅可以放置.java源文件,还可以放置其他的资源文件,如*..hbm.xml文件等等。
下图为idea maven项目的配置文件放置位置:

3.路径问题:
ctrl+Alt+shift+s进入下图Project Structure

将src\main\java 设置为Source Folders
将src\main\resoureces设置为Resource Folders
然后apply ,rebulid项目
4.上述方法都无法解决我的问题,因此我考虑是不是文件名错误问题。
文件名为:log4j.properties,这里需要注意是否将名字写全,后缀是否对。
5.该方法可以解决log控制台显示的问题。
在debug info error等代码之前加上BasicConfigurator.configure(); 可以在控制台上显示出打印的信息
![]()

但是该方法只能将信息显示在控制台依然无法解决输出到log文件中
在经过这些解决方法一一尝试 , 发现依然解决不了我的问题。我突然发现在target文件夹中,不存在我的配置文件,这样我的有点奇怪。因此又有下面的一个方法。
6.是否是在编译的时候,idea没有将resources的配置文件复制到target的问题。
方法是在pom.xml配置文件中添加
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.properties</include>
</includes>
</resource>
</resources>
</build><includes>是将 src/main/resources这个文件夹下的 .properties 这一类型的文件全部复制到target文件夹下。
还有一种是将该文件夹下所有文件全部复制过去代码如下:
<build>
<resources>
<resource>
<directory>src/main/java</directory>
<excludes>
<exclude>**/*.java</exclude>
</excludes>
</resource>
</resources>
</build>
此处需要注意:复制的文件夹到底是java还是resources,因此在idea maven下配置文件都在resources文件夹下,而eclipse配置文件是在java下。
经过这些解决方法,我的问题依然没有解决,即使我在配置文件中添加了上述的build,但是依然没有把log4j.properties复制到target文件夹下。
7.有失望,想做的东西也停滞不前了,突然想,既然是复制配置文件,那我直接就粗暴的直接 复制 粘贴! 。

rebulid了一下,然后运行了程序:呵呵!!!!!!成功了 。

