log4j2未检测到自定义appender插件 [英] custom appender plugin not detected by log4j2

查看:942
本文介绍了log4j2未检测到自定义appender插件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试为log4j 2.0创建一个自定义appender,但是在让我的log4j配置识别appender时遇到了问题。我知道log4j 2.0不支持配置属性中的包。所以我尝试了这里,使用普通的javac运行代码,但即使这样它也会出现此错误: 2015-03-11 18:47:35,281错误处理元素测试:CLASS_NOT_FOUND
2015-03-11 18:47: 35,307错误无法找到记录器的appender test1

I am trying to create a custom appender for log4j 2.0, but am having issues getting my log4j configuration to recognize the appender. I know log4j 2.0 doesnt support packages in configuration attributes. So I tried, as suggested here, running the code with plain javac but even then it gives this error:2015-03-11 18:47:35,281 ERROR Error processing element Test: CLASS_NOT_FOUND 2015-03-11 18:47:35,307 ERROR Unable to locate appender test1 for logger

这是我的自定义appender:

Here is my custom appender:

@Plugin(name = "Test", category = "Core", elementType = "appender", printObject = true)
public class TestAppender extends AbstractAppender{
protected TestAppender(String name, Filter filter,
        Layout<? extends Serializable> layout, boolean ignoreExceptions) {
    super(name, filter, layout, ignoreExceptions);
    // TODO Auto-generated constructor stub
}

@PluginFactory
public static TestAppender createAppender(@PluginAttribute("name") String name,
        @PluginAttribute("ignoreExceptions") boolean ignoreExceptions,
        @PluginElement("Layout") Layout<? extends Serializable> layout,
        @PluginElement("Filters") Filter filter) {



    return new TestAppender(name, filter, layout, true);        
}

public void append(LogEvent event) {
    // TODO Auto-generated method stub
    System.out.println(event.getMessage());
}

}

和我的配置xml:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN" >
<Appenders>
    <Test name="test1" >
        <PatternLayout pattern="%d %msg%n" />
        <ThresholdFilter level="DEBUG" />
    </Test>
</Appenders>
<Loggers>
    <Root level="DEBUG">
        <AppenderRef ref="test1" />
    </Root>
</Loggers>
</Configuration>

提前感谢任何有用的输入

Thanks in advance for any useful input

推荐答案

我在appender之前在log4j2.xml的配置中添加了包含Custom Appender的软件包,它选择了没有错误的自定义appender。

I added the package containing the Custom Appender in the Configuration of log4j2.xml before the appenders and it picked up the custom appender with no errors.

<Configuration packages="com.yourcompany.yourcustomappenderpackage">

我引用了这个帖子 - 如何在log4j2中创建自定义Appender?

I referred this thread - How to Create a Custom Appender in log4j2?

这篇关于log4j2未检测到自定义appender插件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆