2011-03-03 93 views
0

我想实现架构,用户像平常一样通过log4j属性定义log4j appender,但该appender只是一个缓冲区,它将日志消息委托给它拥有的几个appender之一。
我不想在log4j peroprties文件中定义这些appender,我希望它们被隐藏,以便没有用户可以修改那里的配置。有没有机制是我可以构建新的log4j appenders,将它们另存为另一个appender的数据成员,这些appender扩展了org.apache.log4j.AppenderSkeleton并发布并绑定到我的记录器,然后从骨架中调用这些appender?
类似:我可以独立实现log4j 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

显然,在构建log4j appender中没有特殊问题,比如'RollingFileAppender'并从另一个appender调用它。 我只需设置所有必需的属性,如MaxFileSize,File,maxBackupIndex等。