2011-09-19 58 views
5

我在我的應用程序中使用log4j作爲登錄目的。由於現在配置日誌我使用下面的代碼:Log4j配置和監視不能正常工作

LogManager.resetConfiguration(); 
InputStream stream = Thread.currentThread().getContextClassLoader().getResourceAsStream("log4j.properties"); 
Properties props= new Properties(); 
props.load(stream); 
PropertyConfigurator.configure(props); 

但這樣做的問題是,每當我想的過程中更改日誌記錄級別,我不得不重新啓動服務器。所以我改變了代碼: -

LogManager.resetConfiguration(); 
PropertyConfigurator.configureAndWatch(("log4j.properties", 900000L); 

這段代碼非常應該有助於重新加載指定的時間後log4j.properties文件,我剛纔所說的15分鐘。但仍然代碼無法正常工作

我在代碼中遺漏了什麼?

問候。

+1

你是否創建了一個獨立的例子,並試圖看看它是否按照你的預期工作?另外,你是否已經從類路徑加載技術轉移到基於文件系統的技術?在這種情況下,請確保您的log4j.properties路徑正確。 –

回答

7

configureAndWatch()手錶文件。不在類路徑中的資源。

+0

雅我試過了..它工作正常..謝謝 –

1

我試過這個解決方案,工作正常!關鍵是你必須像文件一樣提供路徑而不是資源。

//Resource 
DOMConfigurator.configureAndWatch("/log4j.xml", 2000L); 

//File 
DOMConfigurator.configureAndWatch("./src/log4j.xml", 2000L); 

嘗試第二個方案和修改的log4j.xml和測試一下吧!