我想实现用户像往常一样通过 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);
}
实现这种机制的方法是什么?