2012-10-30 107 views
0

我一直在嘗試首次使用log4j(或者就此而言,任何類型的日誌庫)。經過近2天的努力,我無法完成工作。org.apache.log4j無法識別我的log4j.properties文件

這是我正在使用的log4j.properties文件,但似乎記錄器(從junit測試套件類中調用)完全不使用此文件。

private static final Logger logger = Logger.getLogger(myclass.class.getName()); 
... 
logger.error("Message"); 
... 

它只是種出在控制檯上的消息(沒有創建的文件),當我從rootLogger刪除附加器X,它仍然在控制檯吐出的消息。

該文件保存在Eclipse項目目錄下名爲「resources」的包下。我有三個其他源代碼包,我希望使用這個配置文件,這就是爲什麼我爲這個文件製作了一個單獨的包。

它是文件創建權限問題,還是參數大小寫錯誤(給定java是強類型的)還是該文件的位置?

任何幫助將不勝感激。

log4j.rootLogger=DEBUG, X, RUNLOG 

log4j.appender.X=org.apache.log4j.ConsoleAppender 
log4j.appender.X.layout=org.apache.log4j.PatternLayout 
log4j.appender.X.layout.ConversionPattern=%m%n 

log4j.appender.RUNLOG=org.apache.log4j.FileAppender 
log4j.appender.RUNLOG.file=run.log 
log4j.appender.RUNLOG.threshold=INFO 
log4j.appender.RUNLOG.layout=org.apache.log4j.PatternLayout 
log4j.appender.RUNLOG.layout.ConversionPattern=%m%n 
+0

你可以編輯你的文章來顯示你的程序在用'-Dlog4j.debug'啓動時的輸出嗎? – beny23

回答

0

默認情況下,Log4J的希望能夠找到的「默認包」它的配置文件,您的類路徑:它只是查找的資源稱爲log4j.properties(後來log4j.xml,但那是另一回事),並預期它可以在類路徑中找到。

您提到您的Log4J配置文件位於名爲resources的包中,這正是它無法找到它的原因。

您有以下選擇:

  • 移動log4j.properties文件,以便它位於默認包。
  • 在您的項目中創建一個文件夾(而不是包),將您的log4j.properties文件放在那裏,並將該文件夾添加到您的運行時類路徑。
  • 指定log4j.configuration系統屬性,爲其提供Log4J配置文件的路徑。
+0

謝謝大家,問題是我從其中一個鏡像下載的一些測試版軟件包。它有非常多的jar文件。正確的軟件包在apache log4j檔案站點。我必須用Logger做更多的事情,並希望現在能夠順利進行。 – footloose

0

我不認爲你的resources文件夾在類路徑中。嘗試將文件夾添加到使用Project->Properties->Java Build ->Libraries ->Add Class Folder