java - Log4j2 - 错误处理元素Appender

标签 java log4j2

我想写一个简单的程序来测试 log4j2。我从 manual 复制了大部分代码. 这是我得到的错误:

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"

我的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!");
    }
}

我的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>

有什么办法可以解决这个错误吗?

最佳答案

在 Log4j 2 中,appender 的类型在元素的名称中指定,而不是使用 type 属性。

换句话说,替换诸如

之类的行
    <Appender type="Console" name="STDOUT">

    <Appender type="File" name="File" fileName="${filename}">

    <Console name="STDOUT">

    <File name="File" fileName="${filename}">

另见 Log4j 2 documentation on appenders .

关于java - Log4j2 - 错误处理元素Appender,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36978115/

相关文章:

java - 如何从gradle的测试 jar 中运行测试?

java - 如何在 grails/java 中向不同用户类型显示不同的消息

java - spring jSTL核心检查方法调用

java - Spring Boot Log4j2 配置日志大小维护问题

java - 如何自定义我的 log4j2.xml 参数

java - Log4j2 正则表达式

java - 获取模板时的速度抛出 NPE

java - 使用 BufferedReader 读取 CSV 文件导致读取替代行

java - Log4j 2 根记录器覆盖一切?

java - 为什么 log4j 记录到两个单独的文件?