2011-04-04 51 views
1

這是我的第一篇文章,因此祝我好運。僅當Eclipse「在與工作空間相同的JRE中運行」時,纔會忽略Ant日誌級別。

我遇到了一個問題,即在Eclipse中運行我的Ant構建文件時,Log4J記錄器級別未寫入控制檯。

即使我在log4j.properties中指定了「debug」,我也只能看到「info」和更高的值。我知道它找到我的log4j.properties,因爲當我暫時刪除log4j.properties並運行Ant構建時,Ant會發出抱怨。

相反,當我從命令行運行Ant構建時,我能夠看到正確的日誌記錄(調試vs信息)。如果我編輯ant文件配置並選擇「Separate JRE」,我甚至可以在Eclipse中顯示它。但是,我更願意「在與工作空間相同的JRE中運行」(除非有人反對)。

如果有要求,我會很樂意回覆任何額外要求的細節。現在,我將添加我的環境中的一些細節:

的Windows XP

的Eclipse的Java EE IDE爲Web開發者赫利俄斯SR 2(V 3.6.2)

螞蟻v1.8.2的

的Java JDK 1.6.0_24

如前所述,我可以得到的調試日誌記錄級別在Eclipse中顯示,如果我選擇「獨立JRE」,這是完全一樣的1.6.0_24只是現在不是在Eclipse中運行。

回答

0

使用特定的命令行參數在eclipse中運行ant腳本。你的log4j的聽衆=

  • 專注於Ant腳本在工作區
  • 上下文菜單中使用「2運行方式Ant構建」
  • 在編輯配置對話框中,選擇「主」選項卡
  • 設置你的命令行在 '參數' 文本域參數=

-logger org.apache.tools.ant.listener.Log4jListener等..

也見Ant Manual Listeners and Loggers

+0

感謝您的回答。爲了縮小這個問題,我創建了一個簡單的HelloWorld類,其中包含log4j語句,用於調試,信息,警告和測試,在Eclipse中使用「在與工作空間相同的JRE中運行」在Ant中運行它。 簡單的測試工作正常。所以現在我回過頭來看看我遇到問題的更復雜的例子。問題代碼在ant和eclipse中使用org.hibernate.tool.ant.HibernateToolTask​​。它的記錄器語句不是在Eclipse中生成,而是在從命令行運行ant或通過Eclipse和單獨的JRE運行ant時打印得很好。 – Justin 2011-04-04 19:19:27

+0

因此,底線是log4j在Eclipse中與Ant一起工作,只是沒有在特定的情況下工作,我在Eclipse中運行HibernateToolTask​​ ant任務(從命令行工作正常)。 – Justin 2011-04-04 19:24:53

+0

好吧,所以你的問題是回答;-)從來沒有使用過Hibernate,但IMO剩餘的問題只是你的休眠任務的配置問題,eclipse不知道你的hibernate-log4j.properties配置文件。請注意,還有一個用於Eclipse的Hibernate插件=> http://www.hibernate.org/subprojects/tools.html。日誌記錄也在文檔中提到=> http://docs.jboss.org/tools/3.1.0.GA/en/hibernatetools/html_single/index.html#debug_log – Rebse 2011-04-04 20:54:07

相關問題