当通过Ant运行Java类时,我在获取Log4J输出时遇到了很多麻烦,即使log4.properties在类路径上也是如此。在此记录,以防其他人遇到同样的问题。
E.g。
<java classname="Hello" fork="true">
<classpath>
<fileset dir="${lib.dir}">
<include name="**/*.jar"/>
</fileset>
</classpath>
</java>
答案 0 :(得分:6)
这可以通过以下方式解决:
<property name="log4j" value="file:///${basedir}/log4j.properties"/>
...
<java classname="Hello" fork="true">
<sysproperty key="log4j.configuration" value="${log4j}"/>
<classpath>
<fileset dir="${lib.dir}">
<include name="**/*.jar"/>
</fileset>
</classpath>
</java>
答案 1 :(得分:2)
如果您想知道log4j在哪里查找配置文件,请尝试设置log4j.debug
系统属性。
<java classname="Hello" fork="true">
<sysproperty key="log4j.debug" value="true" />
<classpath>
…
</classpath>
</java>
这将打印有关stderr的信息,说明它在寻找配置文件的位置。在manual中有一个简短的提及。