[英]Log4j2 - Error processing element Appender
I wanted to write a simple programm to test log4j2.我想编写一个简单的程序来测试 log4j2。 I copied most of my code form the manual .
我从 手册中复制了大部分代码。 This is the error I get:
这是我得到的错误:
2016-05-02 10:11:31,054 main ERROR Error processing element Appender ([Appenders: null]): CLASS_NOT_FOUND
2016-05-02 10:11:31,054 main ERROR Error processing element Appender ([Appenders: null]): CLASS_NOT_FOUND
2016-05-02 10:11:31,117 main ERROR Unable to locate appender "STDOUT" for logger config "root"
2016-05-02 10:11:31,117 main ERROR Unable to locate appender "File" for logger config "MyLogger"
My java code:我的Java代码:
package log4jtest;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
public class Log4jtest {
private static final Logger logger = LogManager.getLogger("MyLogger");
public static void main(String[] args) {
logger.error("Hello, World!");
}
}
My log4j2 configuration file:我的 log4j2 配置文件:
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN" name="Log4jTest" packages="">
<Properties>
<Property name="filename">test.log</Property>
</Properties>
<Appenders>
<Appender type="Console" name="STDOUT">
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
</Appender>
<Appender type="File" name="File" fileName="${filename}">
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
</Appender>
</Appenders>
<Loggers>
<Logger name="MyLogger" level="ALL" additivity="false">
<AppenderRef ref="File" />
</Logger>
<Root level="ALL">
<AppenderRef ref="STDOUT" />
</Root>
</Loggers>
</Configuration>
Any ideas how to fix this error?任何想法如何解决这个错误?
In Log4j 2 the type of appender is specified in the name of the element, not with a type
attribute.在 Log4j 2 中,appender 的类型在元素的名称中指定,而不是使用
type
属性。
In other words, replace lines such as换句话说,替换诸如
<Appender type="Console" name="STDOUT">
and和
<Appender type="File" name="File" fileName="${filename}">
with与
<Console name="STDOUT">
and和
<File name="File" fileName="${filename}">
See also the Log4j 2 documentation on appenders .另请参阅有关附加程序的Log4j 2 文档。
In my case it was wrong element name就我而言,它是错误的元素名称
<Appenders>
<RollingRandomAccessFileAppender name="stdout" fileName="../logs/app.log" filePattern="../logs/app.%d{yyMMdd}.%i.log.gz">
...
Correct one is正确的一个是
<Appenders>
<RollingRandomAccessFile name="stdout" fileName="../logs/app.log" filePattern="../logs/app.%d{yyMMdd}.%i.log.gz">
...
使用以下行
public static Logger logger = Logger.getLogger("MyLogger");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.