| @@ -466,6 +466,8 @@ implementing class name to the <code>default.properties</code> file in the | |||||
| <code>org.apache.tools.ant.taskdefs</code> | <code>org.apache.tools.ant.taskdefs</code> | ||||
| package. Then you can use it as if it were a built-in task.</p> | package. Then you can use it as if it were a built-in task.</p> | ||||
| <hr> | <hr> | ||||
| <h2><a name="buildevents">Build Events</a></h2> | <h2><a name="buildevents">Build Events</a></h2> | ||||
| <p>Ant is capable of generating build events as it performs the tasks necessary to build a project. | <p>Ant is capable of generating build events as it performs the tasks necessary to build a project. | ||||
| @@ -522,6 +524,49 @@ been configured.</p> | |||||
| simultaneously - for example while Ant is executing | simultaneously - for example while Ant is executing | ||||
| a <code><parallel></code> task.</p> | a <code><parallel></code> task.</p> | ||||
| <h3>Example</h3> | |||||
| Writing an adapter to your favourite log library is very easy. | |||||
| Just implent the BuildListener interface, instantiate your logger and delegate | |||||
| the message to that instance. <br> | |||||
| When starting your build provide your adapter class and the log library to the | |||||
| build classpath and activate your logger via <code>-listener</code> option as | |||||
| described above. | |||||
| <blockquote> | |||||
| <pre> | |||||
| public class MyLogAdapter implements BuildListener { | |||||
| private MyLogger getLogger() { | |||||
| final MyLogger log = MyLoggerFactory.getLogger(Project.class.getName()); | |||||
| return log; | |||||
| } | |||||
| @Override | |||||
| public void buildStarted(final BuildEvent event) { | |||||
| final MyLogger log = getLogger(); | |||||
| log.info("Build started."); | |||||
| } | |||||
| @Override | |||||
| public void buildFinished(final BuildEvent event) { | |||||
| final MyLogger logger = getLogger(); | |||||
| MyLogLevelEnum loglevel = ... // map event.getPriority() to enum via Project.MSG_* constants | |||||
| boolean allOK = event.getException() == null; | |||||
| String logmessage = ... // create log message using data of the event and the message invoked | |||||
| logger.log(loglevel, logmessage); | |||||
| } | |||||
| // implement all methods in that way | |||||
| } | |||||
| </pre> | |||||
| </blockquote> | |||||
| <hr> | <hr> | ||||
| <h2><a name="integration">Source code integration</a></h2> | <h2><a name="integration">Source code integration</a></h2> | ||||