Ant - Listeners & Loggers



Ant allows the build process to be monitored using listeners and loggers.

Listeners

Ant provides following events to be captured using listeners.

  • build started

  • build finished

  • target started

  • target finished

  • task started

  • task finished

  • message logged

Custom listeners can be registered on command line using -listener argument.

Loggers

Loggers extends listeners capabilities and add the following features

  • Can log information to console or file using -logfile argument

  • Can log using logging levels like -quiet, -verbose, -debug

  • Are emacs-mode aware

Built-in Listeners/loggers

  • org.apache.tools.ant.DefaultLogger − The logger used implicitly unless overridden with the -logger command-line switch.

  • org.apache.tools.ant.NoBannerLogger − This logger omits output of empty target output.

  • org.apache.tools.ant.listener.MailLogger − Extends DefaultLogger such that output is still generated the same, and when the build is finished an e-mail can be sent.

  • org.apache.tools.ant.listener.AnsiColorLogger − Colorifies the build output.

  • org.apache.tools.ant.listener.Log4jListener − Passes events to Apache Log4j for highly customizable logging.

  • org.apache.tools.ant.XmlLogger − Writes the build information to an XML file.

  • org.apache.tools.ant.TimestampedLogger − Prints the time that a build finished

  • org.apache.tools.ant.listener.BigProjectLogger − Prints the project name every target

  • org.apache.tools.ant.listener.SimpleBigProjectLogger − Prints the project name for subprojects only, otherwise like NoBannerLogger Since Ant 1.8.1

  • org.apache.tools.ant.listener.ProfileLogger − The default logger, with start times, end times and durations added for each task and target.

Example

Create build.xml with the following content:

<?xml version="1.0"?>
<project name="sample" basedir="." default="copy">
   <target name="copy">
     <echo>File Copied</echo>
   </target>
</project>

Output

Running Ant on the above build file produces the following output −

F:\tutorialspoint\ant>ant -logger org.apache.tools.ant.listener.TimestampedLogger
Buildfile: F:\tutorialspoint\ant\build.xml

copy:
   [echo] File Copied

BUILD SUCCESSFUL - at 03/12/21, 11:24 AM
Total time: 0 seconds

F:\tutorialspoint\ant>ant -logger org.apache.tools.ant.XmlLogger -verbose -logfile build_log.xml
Apache Ant(TM) version 1.10.12 compiled on October 13 2021
Trying the default build file: build.xml
Buildfile: F:\tutorialspoint\ant\build.xml

Now you can check build_log.xml file is created with relevant logs.

Advertisements