0

我想实现用户像往常一样通过 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); 
}

实现这种机制的方法是什么?

4

1 回答 1

0

显然,构造 log4j appender 没有什么特别的问题,比如 'RollingFileAppender' 并从另一个 appender 调用它。我只需要设置所有必需的属性,例如 MaxFileSize、File、maxBackupIndex 等。

于 2011-03-10T14:52:01.467 回答