我正在尝试在一个简单的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>
关于我做错的任何想法?
答案 0 :(得分:1)
将log4j.xml的文件名更改为log4j2.xml。
我希望它有所帮助。