Logging 如何使用log4j2启动ant构建?

Logging 如何使用log4j2启动ant构建?,logging,ant,build,log4j,log4j2,Logging,Ant,Build,Log4j,Log4j2,我已经用log4j-1.2.15.jar开始了一个ant构建。 下面是我的start.sh的内容: ant -e -listener org.apache.tools.ant.listener.Log4jListener -lib ./log4j 所以,这很容易;) ?我已经清除了log4j文件夹,并将新的log4j-core-2.3.jar放入其中。我没有补充一个问题。我再次运行以下命令 ant -e -listener org.apache.tools.ant.listener.Log4j

我已经用log4j-1.2.15.jar开始了一个ant构建。 下面是我的start.sh的内容:

ant -e -listener org.apache.tools.ant.listener.Log4jListener -lib ./log4j
所以,这很容易;)

我已经清除了log4j文件夹,并将新的log4j-core-2.3.jar放入其中。我没有补充一个问题。我再次运行以下命令

ant -e -listener org.apache.tools.ant.listener.Log4jListener -lib ./log4j
并获得以下消息

生成失败
由于依赖项无效,无法加载类org.apache.tools.ant.listener.Log4jListener

我能做什么?多谢各位

--更新20。2015年6月:

BUILD FAILED
Class org.apache.tools.ant.listener.Log4jListener could not be loaded because of an invalid dependency.
    at org.apache.tools.ant.util.ClasspathUtils.newInstance(ClasspathUtils.java:265)
    at org.apache.tools.ant.Main.addBuildListeners(Main.java:937)
    at org.apache.tools.ant.Main.runBuild(Main.java:772)
    at org.apache.tools.ant.Main.startAnt(Main.java:235)
    at org.apache.tools.ant.launch.Launcher.run(Launcher.java:285)
    at org.apache.tools.ant.launch.Launcher.main(Launcher.java:112)
Caused by: java.lang.NoClassDefFoundError: org/apache/log4j/Logger
    at org.apache.tools.ant.listener.Log4jListener.<init>(Log4jListener.java:48)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
    at java.lang.Class.newInstance(Class.java:374)
    at org.apache.tools.ant.util.ClasspathUtils.newInstance(ClasspathUtils.java:250)
    ... 5 more
Caused by: java.lang.ClassNotFoundException: org.apache.log4j.Logger
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
    ... 12 more
生成失败
由于依赖项无效,无法加载类org.apache.tools.ant.listener.Log4jListener。
位于org.apache.tools.ant.util.ClasspathUtils.newInstance(ClasspathUtils.java:265)
位于org.apache.tools.ant.Main.addBuildListeners(Main.java:937)
位于org.apache.tools.ant.Main.runBuild(Main.java:772)
位于org.apache.tools.ant.Main.startAnt(Main.java:235)
位于org.apache.tools.ant.launch.Launcher.run(Launcher.java:285)
位于org.apache.tools.ant.launch.Launcher.main(Launcher.java:112)
原因:java.lang.NoClassDefFoundError:org/apache/log4j/Logger
位于org.apache.tools.ant.listener.Log4jListener.(Log4jListener.java:48)
位于sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)
位于sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
在sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
位于java.lang.reflect.Constructor.newInstance(Constructor.java:526)
位于java.lang.Class.newInstance(Class.java:374)
在org.apache.tools.ant.util.ClasspathUtils.newInstance(ClasspathUtils.java:250)上
... 还有5个
原因:java.lang.ClassNotFoundException:org.apache.log4j.Logger
在java.net.URLClassLoader$1.run(URLClassLoader.java:366)
在java.net.URLClassLoader$1.run(URLClassLoader.java:355)
位于java.security.AccessController.doPrivileged(本机方法)
位于java.net.URLClassLoader.findClass(URLClassLoader.java:354)
位于java.lang.ClassLoader.loadClass(ClassLoader.java:425)
位于java.lang.ClassLoader.loadClass(ClassLoader.java:358)
... 还有12个
奖金: 我怎样才能摆脱控制台中的ant echo。如您所见,我已经添加了-e选项。所以[echo]标记不见了,但消息仍然在那里

--更新(2)20。朱莉2015

《指南》说:

版本1中的主包是org.apache.log4j,版本2中的主包是org.apache.logging.log4j

所以我猜
org.apache.tools.ant.listener.Log4jListener
找错地方了


如何说2015年5月31日编译的Apache Ant(TM)1.9.5版使用其他软件包?

Log4jListener
取决于log4j 1.x。它不能使用较新的log4j 2.x


来自Apache。打开归档文件并将log4j-1.2.*.jar提取到
-lib
选项所指向的
log4j
目录。

-verbose
选项添加到
ant
命令中。然后,编辑您的问题,添加显示错误消息的整个堆栈跟踪。有没有办法使用log4jv2?我喜欢使用突出显示功能!!不幸的是,没有办法将log4jv2与
Log4jListener
一起使用。