Вывод Apache Ant с использованием только log4j - PullRequest
2 голосов
/ 16 июня 2010

Я пытаюсь добиться, чтобы log4j был единственным выходом из моего файла сборки Ant.

Получение log4j работает почти идеально, за исключением того, что оно расширяет вывод Ants. Итак, я получаю DefaultLogger от Ant, перемежающийся с выходом 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. ТИА.

Ответы [ 2 ]

0 голосов
/ 16 июня 2010

попробуйте использовать переключатель -e

ant -lib . -listener org.apache.tools.ant.listener.Log4jListener -e main
Buildfile: D:\install\apache-ant-1.8.0RC1-bin\apache-ant-1.8.0RC1\bin\build.xml
14:29:20 INFO  Build started.

main:
14:29:20 INFO  Target "main" started.
 test
14:29:20 WARN  test
 14:29:20 INFO  Target "main" finished.

BUILD SUCCESSFUL
Total time: 0 seconds
14:29:20 INFO  Build finished.

[echo] test ушел

0 голосов
/ 16 июня 2010

Вы можете передать log4j.properties в путь к классу во время работы муравья.

Извлечь это , в нем есть много подробных объяснений, следуйте комментарию "Кевина", вотвыдержка:

Log4j загружает свою конфигурацию, ища системное свойство log4j.configuration.В противном случае он ищет log4j.properties или log4j.xml в пути к классам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...