2011-08-09 56 views
0

傢伙我想糾正一個應用程序......,我發現這個代碼行:幫助識別此記錄

private static final Log log=LogFactory.getLog(MyClass.class); 

那麼這個記錄器這樣使用:

log.info("The message has the following arguments {0},{1},{2}",arg1.toString(),arg2.toString(),arg3.toString()); 

中當然這給我編譯錯誤。問題在於,他們在幾個類中有相似的模式,這裏有相同的錯誤。

日誌類的進口:

import org.apache.commons.logging.Log; 
import org.apache.commons.logging.LogFactory; 

這些是那些正確的??,或者我應該使用其他進口喜歡,Log4j的或SLF4J。

非常感謝。

+0

它看起來像測井方法都能夠接受可變參數。正如你在下面指出的,Apache公共日誌記錄類不採用可變參數。如果你找到一個,你可以導入這些工具。 – Atreys

回答

1

編輯:我想你指的是特定的語法落在了SLF4J線。 檢查http://www.slf4j.org/apidocs/org/slf4j/Logger.html中的示例。那麼進口量也會相應變化。

他們是正確的。 參考http://commons.apache.org/logging/guide.html

如果你是Maven的。

使用該解決您的編譯錯誤

<!-- Apache commons-logging --> 
    <dependency> 
     <groupId>commons-logging</groupId> 
     <artifactId>commons-logging</artifactId> 
    <version>1.1.1</version> 
    </dependency> 
+0

好,感謝...的apache的公地log.info方法但是該簽名是: log.info(對象消息,的Throwable t)的; 而在他們正在使用的項目中: log.info(「消息有以下參數{0},{1},{2}」,arg1.toString(),arg2.toString(),arg3。的toString()); 這是給我一個編譯錯誤,那是說,一個Throwable對象的簽名預期。非常感謝。 – Pablo

+0

巴勃羅,請檢查更新後 –

+0

SLF4J包括公共記錄類的實現。這似乎是Apache Commons記錄SLF4j的一個例子。 – DwB