2011-05-30 66 views
2

我有一個已添加到Web項目的Java構建路徑的Java項目。未找到Log4J屬性文件

在第一個Java項目中,我將Log4J JAR文件添加到Java Build Path中,並且由於此項目已添加到Web Project的Java Build Project中,JAR文件也自動添加到Web Project Java Build Path中。

在Web項目上我有一個Web服務實例化一個Java項目的類。該類有一個簡單的記錄器,並且它能正常工作。

現在,我想創建一個名爲log4j.properties的屬性文件來配置Logger,Appender和LayoutPattern。

每當我試着打電話給instantiaded類我得到的控制檯上這個錯誤的方法:

log4j的:錯誤無法讀取配置文件[log4j.properties。

我在做什麼錯?

這裏的log4j屬性文件:

log4j.rootLogger=DEBUG, CA 

log4j.appender.CA=org.apache.log4j.ConsoleAppender 
log4j.appender.CA.layout=org.apache.log4j.PatternLayout 
log4j.appender.CA.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n 

很抱歉,但它是一個假警報......

就像我說的,在實例化的記錄器類駐留在添加項目作爲定義Web服務的主要項目的依賴項。

因此該項目是在一個JAR文件,並與suposed解決我所提到的公佈:。

PropertyConfigurator.configure(的getClass()getProtectionDomain()getCodeSource()的getLocation()的getPath() +「log4j.properties」);

我得到這樣一個路徑:

C:/project_path.jar/log4j.properties。

顯然有產文件仍然沒有找到......

索裏......一個解決方案

+0

請發佈您的log4j.properties文件:) – 2011-05-30 15:18:37

回答

1

好,有時明顯的答案是你最期待的一個

事實證明。我只需要刪除PropertyConfigurator.configure(xxx)行並將log4j.properties文件放置在依賴項目的src文件夾中。

謝謝

+0

沒有幫助的反應,更像通用的建議。 – Siddharth 2012-07-17 07:23:59

+0

爲什麼這麼做很明顯? – hephestos 2013-01-24 14:04:32

3

將您log4j.properties文件在您classes目錄,如果使用解壓WAR,否則將其放入仍在工作src文件夾(您的java類的根文件夾)。

+0

對不起,但這沒有奏效 – RedEagle 2011-05-30 16:13:09

+0

您使用的是什麼應用程序服務器/ servlet容器? – 2011-05-30 17:13:42

1

我發現解決這個問題的唯一方法是將log4j.properties文件放在src根文件夾中。

然後在該實例的記錄下面一行類:

PropertyConfigurator.configure( 「log4j.properties」)

...只好改爲:

PropertyConfigurator。配置(getClass()。getProtectionDomain()。getCodeSource()。getLocation()。getPath()+「log4j。屬性「)。

最後文件中發現

感謝您的洞察力PAL

+0

沒有爲我工作..我想讓應用程序在類文件夾中查找。 – Siddharth 2012-07-17 07:23:27

4

如果使用log4j 2.x,則需要有一個名爲log4j2.xml的文件。

log4j.properties不會這樣做。

+0

有人可以請提供一個鏈接哪裏一般凡人程序員應該找到這些信息記錄? – Blauhirn 2016-03-10 19:22:40