【发布时间】:2011-07-07 21:32:50
【问题描述】:
我想实现用户像往常一样通过 log4j 属性定义 log4j appender 的架构,但是这个 appender 只是一个缓冲区,它将日志消息委托给它拥有的几个 appender 之一。
我不想在 log4j peroprties 文件中定义这些附加程序,我希望它们被隐藏,这样任何用户都无法修改那里的配置。是否有机制我可以构造新的 log4j 附加程序,将它们保存为另一个扩展 org.apache.log4j.AppenderSkeleton 并发布并绑定到我的记录器的附加程序的数据成员,然后从骨架中调用这些附加程序?
类似:
public class MemAppender extends AppenderSkeleton
private Appender delegateAppender = new RollingFileAppender();
...//set all the proprerties of the rolling file appender ...
public void append(LoggingEvent event){
//do my business logic and then:
delegateAppender.append(event);
}
这种机制的实现方式是什么?
【问题讨论】: