我正在尝试为log4j 2.0创建自定义附加程序,但是在获取我的log4j配置以识别附加程序时遇到了问题。我知道log4j 2.0在配置属性中不支持软件包。因此,我尝试按照建议here的方法,使用纯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
这是我的自定义附加程序:
@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?
页面加载而不是提交时发生struts验证 - java请原谅我;我对Struts有点陌生。我遇到一个问题,即页面加载而不是我实际提交表单时发生了验证。我整天都在论坛上搜寻和搜寻,没有任何运气。我显然做错了一些事情,应该很容易确定,但是我还没有发现问题所在。这是我的struts.xml的片段:<action name="*Test" method="{1}" clas…
DataSourceTransactionManager和JndiObjectFactoryBean和JdbcTemplate的用途是什么? - java以下的用途是什么:org.springframework.jdbc.core.JdbcTemplate org.springframework.jdbc.datasource.DataSourceTransactionManager org.springframework.jndi.JndiObjectFactoryBean <tx:annotatio…
Struts2中的错误处理 - java我对如何在Struts2中进行错误处理感到困惑。我希望在发生错误时将用户引导到一个中心页面。此外,当发生错误时,我希望将其记录下来,因为我使用的是log4j,因此我将其记录为log.error(e.getMessage(), e);但是,在动作类中,如果我捕获到错误(将我的所有代码放入try / catch中),则不会出现中央/常见错误页面。因此,我决定不捕…
在XSL中访问Hashmap时出现问题 - java假设,我有一段代码: Map mappingId = new HashMap(); mappingId.put("1", "1000"); transformer.setParameter("mappingId", mappingId); transformer.transform(...); 我有…
在特定的Swing组件上设置自定义外观 - java是否可以在Swing GUI上仅针对特定组件或组件集设置用于Synth外观的文件,而无需为其他任何组件进行更改? java参考方案 是的,有可能。将类型指定为“区域”,将其更改为“名称”,将值更改为由setName(“ componentName”)给定的特定名称;应用程序中的方法。添加这个<style id="titleBarButtons…