java - log4j2 未检测到自定义附加程序插件

标签 java log4j2 appender

我正在尝试为 log4j 2.0 创建自定义附加程序,但在让我的 log4j 配置识别该附加程序时遇到问题。我知道 log4j 2.0 不支持配置属性中的包。所以我按照建议尝试了here ,使用纯 javac 运行代码,但即使如此,它也会给出以下错误:2015-03-11 18:47:35,281 ERROR 处理元素测试时出错:CLASS_NOT_FOUND 2015-03-11 18:47:35,307 错误无法找到记录器的附加程序 test1

这是我的自定义附加程序:

@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>

预先感谢您提供任何有用的意见

最佳答案

我在 log4j2.xml 的配置中在附加程序之前添加了包含自定义附加程序的包,并且它毫无错误地选择了自定义附加程序。

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

我提到了这个帖子 - How to Create a Custom Appender in log4j2?

关于java - log4j2 未检测到自定义附加程序插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28987951/

相关文章:

java - 我在socket上设置了超时,发现这个值不能大于21

java - 如何将条形码 Vision API 与 Google Cardboard 集成?

java - 使用 Apache POI 更改行的样式

java - 为什么 JMSAppender 使用同步发送?我们可以改变这一点吗?

java.lang.NoSuchMethodError : org. apache.logging.log4j.core.lookup.MapLookup.toMap

java - 日志事件的 Log4J 重新路由

java - JPA 事件监听器不工作

java - Log4j - 有时只需要换行

grails - 当我使用JDBCAppender设置log4j时,Grails抛出ClassNotFoundException

log4net - 通过 XML 文件*和*代码配置 log4net appender