Pokud máte složitější build.xml, výstup není snadné číst a například struktura vnoření jednotlivých targetů je ztracena. Pro lepší výstup můžete použít XmlLogger (funguje i v Eclipse 3.4):
ant -logger org.apache.tools.ant.XmlLogger -logfile build_log.xml
(detaily použití lze nalézt v dokumentaci Ant listener)
Výstup vypadá takto:
<?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type="text/xsl" href="log.xsl"?> <build time="12 seconds"> <task location="build.xml:198: " name="echo" time="0 seconds"> <message priority="warn"><![CDATA[Some message]]></message> </task> <target name="compile" time="11 seconds"> <task location="build.xml:1548: " name="antcallback" time="0 seconds"> <target name="privateCompileSingleProject" time="0 seconds"> <task location="build.xml:1383: " name="if" time="0 seconds" /> <task location="build.xml:1394: " name="echo" time="0 seconds"> <message priority="warn"><![CDATA[Providing dependencies ...]]></message> </task> <task location="build.xml:1400: " name="ParseDotClasspath" time="0 seconds"> <message priority="info"><![CDATA[Classpath: ..]]></message> </task> <task location="build.xml:1402: " name="property" time="0 seconds" /> ...
Jak lze vidět, výstup je strukturovaný a jako bonus je připojena informace o délce trvání tasku a odkaz na zdrojovou řádku. Při použití vhodného XML editoru a foldingu lze pak lépe sledovat, která zpráva patří ke kterému targetu a vnoření jednotlivých targetů. Je to skoro stejné jako má IntelliJ Idea Ant Tree mode, pouze pracnější. Bohužel díky tomu, že listener připojuje i délku trvání jednotlivých tasků je log vytvořen až po provedení celého build scriptu.
Výsledné XML lze transformovat na HTML, ale transofrmací se ztratí informace o struktuře, více viz apache-ant\src\etc\log.xsl
.