我想实现用户通过log4j属性照常定义log4j appender的体系结构,但这个appender只是一个缓冲区,它将日志消息委托给它拥有的几个appender之一。
我不想在log4j peroprties文件中定义那些appender,我希望它们被隐藏,以便没有用户可以修改那里的配置。是否有机制我可以构造新的log4j appender,将它们保存为扩展org.apache.log4j.AppenderSkeleton的另一个appender的数据成员,并发布并绑定到我的记录器,然后从骨架调用这些appender?
类似的东西:
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);
}
实施此类机制的方法是什么?
答案 0 :(得分:0)
显然,构造log4j appender没有特殊问题,例如'RollingFileAppender'并从另一个appender调用它。 我只需要设置所有必需的属性,如MaxFileSize,File,maxBackupIndex等。