log4j:WARN No appenders could be found for logger问题汇总。

问题如下:

log4j:WARN No appenders could be found for logger问题汇总。_第1张图片

在处理这个问题的时候,在探索这个问题的时候,将网上的问题和解决方法汇总下:

首先问题可能出现的地方

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项目的配置文件放置位置:

log4j:WARN No appenders could be found for logger问题汇总。_第2张图片

3.路径问题:

ctrl+Alt+shift+s进入下图Project Structure

log4j:WARN No appenders could be found for logger问题汇总。_第3张图片

将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配置文件中添加 

 
        
            
                src/main/resources
                
                    **/*.properties
                
            
        
 

是将 src/main/resources这个文件夹下的 .properties 这一类型的文件全部复制到target文件夹下。

还有一种是将该文件夹下所有文件全部复制过去代码如下:
 


    
        
            src/main/java
            
                **/*.java
            
        
    

此处需要注意:复制的文件夹到底是java还是resources,因此在idea maven下配置文件都在resources文件夹下,而eclipse配置文件是在java下。

经过这些解决方法,我的问题依然没有解决,即使我在配置文件中添加了上述的build,但是依然没有把log4j.properties复制到target文件夹下。

7.有失望,想做的东西也停滞不前了,突然想,既然是复制配置文件,那我直接就粗暴的直接  复制  粘贴! 。

log4j:WARN No appenders could be found for logger问题汇总。_第4张图片

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

log4j:WARN No appenders could be found for logger问题汇总。_第5张图片

log4j:WARN No appenders could be found for logger问题汇总。_第6张图片

唉,问题是解决了,也知道问题出在哪里,但是就是解决不了 。不知道什么原因导致了无法复制到target,如果有人知道什么原因,希望能告诉我。

你可能感兴趣的:(JAVA学习)