如何在使用Ant启动的Java类中查看Log4J输出?

3
当通过Ant运行Java类时,尽管log4.properties位于类路径上,我仍然遇到了很多获取Log4J输出的问题。为了帮助其他人解决相同的问题,我在此记录下来。
例如:
<java classname="Hello" fork="true">      
    <classpath> 
    <fileset dir="${lib.dir}">
        <include name="**/*.jar"/>
    </fileset>     
    </classpath>
</java>
2个回答

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>

感谢您抽出时间记录这个。 - hidralisk

2
如果你想知道log4j正在查找其配置文件的位置,可以尝试设置log4j.debug系统属性。
<java classname="Hello" fork="true">
  <sysproperty key="log4j.debug" value="true" />
  <classpath></classpath>
</java>

这将在 stderr 上打印信息,说明它正在查找其配置文件的位置。手册中简要提到了这一点。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接