2011-03-07 62 views
0

在我的應用程序中,我需要從遠程FTP服務器下載3個不同的工件。在我下載每個工件後,我會驗證這些工件。而且,如果有任何驗證錯誤,我需要登錄他們又名log4j - 按級別過濾而不是級別

驗證錯誤神器A => A.log

僞像B => B.log

驗證有錯誤的驗證錯誤神器C => C.log

我log4j.properties的樣子:

log4j.rootLogger=DEBUG, rollingfile 
log4j.logger.artifactALogger=INFO, AppenderA 
log4j.logger.artifactBLogger=INFO, AppenderB 
log4j.logger.artifactCLogger=INFO, AppenderC 

log4j.appender.AppenderA.File=A.log 
log4j.appender.AppenderA.MaxFileSize=5000KB 
log4j.appender.AppenderA.MaxBackupIndex=1 
log4j.appender.AppenderA.layout=org.apache.log4j.PatternLayout 
log4j.appender.AppenderA.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n 

log4j.appender.AppenderB.File=B.log 
log4j.appender.AppenderB.MaxFileSize=5000KB 
log4j.appender.AppenderB.MaxBackupIndex=1 
log4j.appender.AppenderB.layout=org.apache.log4j.PatternLayout 
log4j.appender.AppenderB.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n 

log4j.appender.AppenderC.File=C.log 
log4j.appender.AppenderC.MaxFileSize=5000KB 
log4j.appender.AppenderC.MaxBackupIndex=1 
log4j.appender.AppenderC.layout=org.apache.log4j.PatternLayout 
log4j.appender.AppenderC.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n 

正如你所看到的,我有記錄每1個附加器和配置FO每個appender都是一樣的(除了日誌文件的名稱)......很多重複!下線,如果我最終有更多的文物下載,我需要爲每個神器聲明另一個記錄器和另一個appender。對我來說這樣做似乎並不合適。也許,我只是不按照它設計的方式使用log4j?我目前正在按類而不是日誌級別過濾日誌輸出。我應該使用更適合的其他日誌API嗎?

回答

0

我們可以爲此創建log4j的自定義記錄器。我們曾經有過類似的需求,最終創建了一個自定義記錄器。

+0

所以,除了創建一個自定義記錄器,我有點卡住這樣做,因爲我目前正在做它?創建一個自定義記錄器似乎有點過分... – 2011-03-07 08:51:32

+0

恐怕是這樣。但是,自定義記錄器並不像看起來那樣痛苦,而且當你真的需要大量的這些分類時可能會有所幫助。 – Krishna 2011-03-07 09:46:42

+0

好的,我來看看它。感謝您的意見 – 2011-03-07 19:22:10