hal*_*lbs 2 java appender log4j2
我正在尝试为log4j 2.0创建一个自定义appender,但是在让我的log4j配置识别appender时遇到了问题.我知道log4j 2.0不支持配置属性中的包.所以我按照这里的建议尝试用普通的javac运行代码,但即使这样它也会出现这个错误: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:
@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());
}
}
Run Code Online (Sandbox Code Playgroud)
和我的配置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>
Run Code Online (Sandbox Code Playgroud)
提前感谢任何有用的输入
Sum*_*hek 12
我在appender之前在log4j2.xml的配置中添加了包含Custom Appender的包,它选择了没有错误的自定义appender.
<Configuration packages="com.yourcompany.yourcustomappenderpackage">
Run Code Online (Sandbox Code Playgroud)
我引用了这个帖子 - 如何在log4j2中创建自定义Appender?
| 归档时间: |
|
| 查看次数: |
7111 次 |
| 最近记录: |