[英]Log4j Configuration issues - log4j:WARN Please initialize the log4j system properly
[英]“log4j:WARN Please initialize the log4j system properly” error
我有一個Web應用程序,其中的一個JSP包含:
PropertyConfigurator.configure(System.getenv("MY_HOME") + "/cfg/log4j.properties");
我仔細檢查了MY_HOME
是否已設置
Tomcat Web服務器說:
log4j:WARN No appenders could be found for logger (com.mycompany.data.JobData).
log4j:WARN Please initialize the log4j system properly.
相同的設置可以在其他服務器之一上正常運行。
有什么提示嗎?
問題是沒有創建日志
與您的答案無關,但這也有幫助。
如果是Web應用程序,最簡單的方法是確保log4j.properties
位於WAR
文件的WEB-INF/classes
文件夾中。 部署應用程序后,將配置log4J。
必須先調用PropertyConfigurator,然后系統中的任何事物才嘗試記錄日志以避免此警告。 您可能會發現在命令行上設置log4j配置更可靠。
或者您可以忽略該警告。 ;)
順便說一句:您不想經常調用此方法,最好只調用一次。
您可以嘗試一下,對我有幫助。 http://www.log4j.ru/articles/HelloWorld.html
我能夠找到在Apache Tomcat 6中運行Eclipse動態Web項目的解決方案。基本上,您需要從上下文中加載log4j屬性文件。
兩個基本步驟
(1)將log4j.properties文件放入war文件的“類目錄”中。
(2)從當前上下文中讀取log4j屬性文件。 我發現執行此操作的最佳方法是訪問當前線程的上下文並從那里開始工作。
對於上述第一步,請更改Eclipse構建過程,以添加一個附加目錄,該目錄最終將加載到war文件中的WEB-INF / classes目錄中。 特別....
(1)在Eclipse中,在項目資源管理器中右鍵單擊您的項目,選擇“新建”->“文件夾”。 您可以為文件夾命名,但是在這種情況下,標准是“資源”。 新文件夾應顯示在項目的根目錄下。
(2)將log4j.properties文件移動到此新文件夾中。
(3)再次右鍵單擊該項目,然后選擇“構建路徑”->“配置構建路徑”。 選擇“來源”標簽。 點擊“添加文件夾”按鈕。 瀏覽以找到您在上面的步驟(1)中創建的新文件夾。 選擇“確定”。
(4)回到eclipse Project Explorer視圖后,請注意該文件夾現在已移至“ Java資源”區域(即由於eclipse表示抽象而不再位於根目錄下)。
(5)清潔構建您的項目。
(6)要驗證您的war文件中的WEB-INF / classs中現在是否存在.properties文件,請將war文件導出到簡單位置(右鍵單擊Project-> Export-> War file)並簽出內容。 請注意,log4j.properties文件現在顯示在WEB-INF / classes中。
現在進行上述第二步,訪問上下文以讀取文件。 在嘗試讀取文件的位置添加以下代碼。 請注意,這是從war文件上下文中讀取的,因此當war文件在服務器之間移動時,此“應”工作。
ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
PropertyConfigurator.configure(classLoader.getResourceAsStream("log4j.properties") );
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.