2017-03-24 44 views
0

我想在一個簡單的Java項目中設置log4j。運行我的項目時,我不斷收到以下消息。類路徑上的log4j.xml文件,但不能被log4j檢測到

ERROR StatusLogger No log4j2 configuration file found. Using default configuration: logging only errors to the console. 

但是我已經將log4j.xml添加到我的類路徑中。比如我在我的主要方法,這樣做:

import org.apache.logging.log4j.LogManager; 
import org.apache.logging.log4j.Logger; 

import java.io.InputStream; 
import java.io.StringWriter; 
import java.net.URL; 
import java.net.URLClassLoader; 

public class main { 

    private static Logger logger = LogManager.getLogger("Test"); 

    static String convertStreamToString(java.io.InputStream is) { 
     java.util.Scanner s = new java.util.Scanner(is).useDelimiter("\\A"); 
     return s.hasNext() ? s.next() : ""; 
    } 

    public static void main(String [] args) { 
     InputStream cl = ClassLoader.getSystemClassLoader().getResourceAsStream("log4j.xml"); 
     System.out.println(convertStreamToString(cl)); 
    } 
} 

當我執行這個代碼,我得到我的log4j.xml文件的內容,這將使它似乎是被裝載到我的類路徑的文件正確?

這裏是我的xml文件的內容:什麼我做錯了

<?xml version="1.0" encoding="UTF-8"?> 
<Configuration status="WARN"> 
    <Appenders> 
    <Console name="Console" target="SYSTEM_OUT"> 
     <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/> 
    </Console> 
    </Appenders> 
    <Loggers> 
    <Logger name="com.foo.Bar" level="trace"> 
     <AppenderRef ref="Console"/> 
    </Logger> 
    <Root level="error"> 
     <AppenderRef ref="Console"/> 
    </Root> 
    </Loggers> 
</Configuration> 

任何想法?

回答

1

將log4j.xml的文件名更改爲log4j2.xml。

我希望它有幫助。

相關問題