logpath上的log4j.xml文件但log4j无法检测到

时间:2017-03-24 02:00:16

标签: java logging intellij-idea log4j log4j2

我正在尝试在一个简单的Java项目中设置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 个答案:

答案 0 :(得分:1)

将log4j.xml的文件名更改为log4j2.xml。

我希望它有所帮助。