2011-03-03 69 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等。