Commons Logging 快速入門(二)

配置(Configuration)

JCL中有兩個基礎接口/類:Log(基礎日誌器)和LogFactory (知道如何創建Log實例)。指定一個特定的Log實現是非常好的實踐(無論這個實現是commons-logging提供的還是用戶自定義的),而指定默認LogFactory實現之外的實現是爲高級用戶準備的,在這裏不會談到。默認的LogFactory實現會使用下面的探測步驟來決定最終使用的Log實現(當按此順序找到第一個匹配時,探測過程會中止):

1.查找名爲org.apache.commons.logging.Log配置屬性(爲了向後兼容1.0之前的版本,名爲org.apache.commons.logging.log的屬性也會查找)。配置屬性可以用Java代碼顯式地進行設置,但是更常見的做法是在類路徑中放置一個名爲commons-logging.properties的標準配置文件。當這個文件存在時,文件中的每一個條目都會成爲LogFactory的一個屬性(attribute)。如果在類路徑中存在多個這樣的文件時,1.1之前的版本只會使用第一個被找到的文件,在1.1之後,每個文件可以定義一個priority鍵,擁有最高優先級的文件會被使用(沒有定義priority鍵表示優先級爲0)。如果多個文件擁有相同的優先級,第一個被找到的文件會被使用。org.apache.commons.logging.Log配置屬性對應的值就是Log實現類的完全限定類名。

2.查找名爲org.apache.commons.logging.Log系統屬性(爲了向後兼容1.0之前的版本,名爲org.apache.commons.logging.log的屬性也會查找)。

3.如果Log4j日誌系統存在於類路徑中,則使用其對應的包裝類(Log4JLogger,實現了Log接口)。

4.如果應用運行在JDK 1.4及以上的系統上,則使用其對應的包裝類(Jdk14Logger,實現了Log接口)。

5.使用默認的簡單日誌包裝類(SimpleLog)。

 

你可以參考JCL的javadocs以獲取更多關於JCL中包含的不同Log實現的細節。Log實現的探測細節在那裏也有更詳細的描述。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章