2009-12-02 99 views
1

我們希望客戶能夠在客戶JAR中控制日誌級別。做這個的最好方式是什麼?如何控制客戶端庫中的日誌記錄級別?

目前我們只有一些寫入System.out的日誌語句。我意識到使用Log4J可以解決這個問題,儘管我們最大的客戶之一不使用Log4J並使用他們自己的自定義日誌記錄實現。有沒有一種乾淨的方法讓他們控制我們的客戶端jar中的日誌記錄?我們認爲的選項:客戶端可以顯式設置客戶端jar類的屬性來設置日誌級別(不喜歡這樣),我們的客戶端jar可以讀取客戶端可以放在其類路徑上的可選.properties文件(更好但仍然有點痛苦)。

回答

5

不要使用具體的日誌記錄框架,請使用SLF4J,這樣您就可以在需要時交換日誌記錄。我首先將自己的System.out轉換爲包含的java.util.logging。它非常簡單直觀,方便大多數需求。

如果您的客戶端使用另一個日誌框架,那麼要麼存在到slf4j的橋樑,要麼您可以編寫自己的日誌框架。

編輯:我們用它來簡化使用LOG4J到我們使用的java.util.loogging的外部庫的日誌記錄。

2

看看Apache公用日誌記錄。它提供了一個簡單的隔離層,可以讓您的代碼使用一致的API,然後插入一個底層記錄器(包括Log4J或其他)。

+0

我會推薦slf4j over commons-logging。 – notnoop 2009-12-02 03:30:37

+0

我不熟悉它。我想我會查找它。 – 2009-12-02 03:32:41

+0

我也推薦slf4j公共日誌記錄。公共日誌記錄可能導致類加載器問題:http://articles.qos.ch/classloader.html – Sylar 2009-12-02 08:38:45