2011-08-08 52 views
1

如果我要分發一個特定的框架,如可以在許多項目中使用的自定義驗證框架,我該如何在此框架中處理日誌記錄,以便它使用與其中的項目相同的日誌記錄方法正在使用?即我已經用通常的調試,警告,信息...方法編寫了一個記錄器接口,並且此接口的實現可以使用log4j或任何其他記錄方法來實現這些方法。如果我將它作爲jar分發,那麼不同的項目如何使用這個jar與他們的日誌框架?Java日誌接口

+6

你爲什麼要重新發明輪子?有[SLF4J](http://www.slf4j.org/)。 –

回答

4

我強烈建議您不要編寫另一個日誌記錄框架來重新編碼您的應用程序,而是使用SLF4J日誌記錄API。所有與其他日誌記錄實現接口的工作已經完成,並且在業界衆所周知。

另外一個好處是,你得到{} -placeholders,它允許你只是做

log.debug("a={}, b={}", a, b); 

和a.toString()和b.toString()時,該字符串將實際上只被調用已記錄。這允許大量的日誌語句,除非您需要它們在調試設置中運行,否則這些日誌語句不會被真正執行。

+0

日誌記錄框架中的難點在於確保日誌記錄時的良好性能,以及不記錄時的卓越性能。 –

0

有些庫提供了log4j,java.util.logging等抽象層。它們充當'接口',然後使用你的項目的人可以使用他們選擇的實現。看看Apache Commons LoggingSLF4J