[英]Log4j messages lost in Eclipse console when running in Ant
我一直在嘗試使用Apache log4j進行日志記錄,以便在Ant中運行時可以在Eclipse的控制台中正確顯示,並且沒有運氣。 我有一個有效的log4j.xml配置,該配置具有基本的根記錄器,調試優先級和ConsoleAppender。 我已經驗證了記錄器的工作原理,因為如果我從項目中刪除log4j.xml,Ant目標會抱怨它缺少log4j配置。 如果我將附加程序切換為文件附加程序,則所有輸出都將正確發送到該文件。 將其切換回控制台,除了標准Ant輸出之外,我對Eclipse控制台一無所知。
但是,我的JUnit測試輸出log4j消息,但是我相信這是因為我批量運行它們並分叉了那些進程。
如果我在命令行上運行完全相同的Ant腳本而未做任何更改,則會得到log4j輸出,該輸出期望與Ant輸出交錯。 我在Mac 10.6 Intel 64計算機上的Eclipse Helios中運行Ant 1.7.1。 我已驗證這也是運行Helios的Windows XP計算機上的問題。 我嘗試在控制台附加程序配置中將“ follow”設置為true,但這沒有幫助。
我可以提供代碼片段,但是就像我已經提到的那樣,我已經證明log4j的配置正確,並且在類路徑上拾取了log4j.xml,並且正在執行和輸出日志記錄。 這與Ant與Eclipse的集成方式有關-其他人會遇到這種情況嗎? 這應該是我提交給Eclipse項目的東西嗎?
我有一個類似的問題,Eclipse沒有記錄junit消息或log4j。 為了獲得junit日志消息,添加了格式化程序就有所不同。 這似乎僅在測試用例完成后才傳遞log4j消息。
<target name="junit" depends="copy_cfg">
<junit printsummary="on" fork="false" haltonfailure="no">
<classpath refid="MyProject.classpath" />
<formatter type="xml" />
<formatter type="plain" usefile="false" /> <!-- to screen -->
<batchtest todir="${test.report.dir}">
<fileset dir="${src.dir}">
<include name="**/*Test.java" />
</fileset>
</batchtest>
</junit>
</target>
log4j的問題是因為我在構建目錄中沒有配置文件,因此在ANT構建過程之后,我將其復制到構建路徑中
<!-- copy the config files for junit -->
<target name="copy_cfg" depends="compile">
<copy file="log4j.xml" todir="${build.dir}" flatten="true"/>
<copy file="config.txt" todir="${build.dir}" flatten="true"/>
</target>
希望這對某人有幫助。
通過ant執行的Java任務不會將標准輸出和錯誤發送到主ant的輸出。
您是否看過Ant Java任務的output
, error
和i/o redirectors
?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.