我想實現的是將log4j作爲我的Ant構建文件的唯一輸出。Apache Ant輸出只使用log4j
獲得log4j的工作非常完美,除了它擴展螞蟻輸出。所以我讓Ant的DefaultLogger穿插着log4j輸出。舉一個很簡單的Ant構建文件:
<project name="Maintenance_to_Delivery" default="main" basedir=".">
<target name="main">
<echo message="test">
</target>
</project>
而且log4j.properties
log4j.rootLogger=ERROR, stdout
log4j.logger.org.apache.tools.ant.Project=INFO
log4j.logger.org.apache.tools.ant.Target=INFO
log4j.logger.org.apache.tools.ant.taskdefs=INFO
log4j.logger.org.apache.tools.ant.taskdefs.Echo=INFO
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{HH:mm:ss} %-5p %m%n
log4j.appender.stdout.Threshold=INFO
並運行此加上輸出:
# ant -lib /app/apache-sf/log4j/1.2.16/log4j-1.2.16.jar:. -listener org.apache.tools.ant.listener.Log4jListener
Buildfile: /home/sysswb/working/qa/sep/M2D-new/build.xml
16:36:59 INFO Build started.
main:
16:37:00 INFO Target "main" started.
[echo] TEST
16:37:00 WARN TEST
16:37:00 INFO Target "main" finished.
BUILD SUCCESSFUL
Total time: 1 second
16:37:00 INFO Build finished
所以 - 是有可能得到的log4j完全替換DefaultLogger輸出?沒有寫自定義記錄器?由於-listener參數註冊了額外的偵聽器,因此DefaultLogger使用的任何偵聽器都可以被刪除/禁用嗎?
我只是Java 1.6.0_18和Ant 1.8.0。 TIA。
log4j的完美的作品 - 在我的問題的輸出示例顯示。我的問題是,它擴展了輸出...我想我應該添加到我的問題「我怎樣壓制DefaultLogger輸出」 – DisabledLeopard 2010-06-16 08:09:24
只是澄清,你不希望DefaultLogger被Ant使用。相反,應該使用你的log4j.properties。這是這種情況還是你想完全禁止Ant日誌? – 2010-06-16 08:33:12
我想log4j完全控制輸出 - 除了log4j所說的東西外,Ant應該什麼都不顯示。 log4j工作正常 - 我只是努力去除默認的Ant記錄器部分。 – DisabledLeopard 2010-06-17 01:33:20