簡體   English   中英

在Ant中運行時,Eclipse控制台中的Log4j消息丟失

[英]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任務outputerrori/o redirectors

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM