Package org.apache.tools.ant

# Class XmlLogger

java.lang.Object
org.apache.tools.ant.XmlLogger

All Implemented Interfaces:
  `java.util.EventListener`, `BuildListener`, `BuildLogger`

    public class XmlLogger
    extends java.lang.Object
    implements BuildLogger

Generates a file in the current directory with an XML description of what happened during a build. The default filename is "log.xml", but this can be overridden with the property `XmlLogger.file`. This implementation assumes in its sanity checking that only one thread runs a particular target/task at a time. This is enforced by the way that parallel builds and antcalls are done - and indeed all but the simplest of tasks could run into problems if executed in parallel.

See Also:
  `Project.addBuildListener(BuildListener)`

## Constructor Summary

Constructors
Constructor | Description
--- | ---
`XmlLogger()` |

## Method Summary

Modifier and Type | Method | Description
--- | --- | ---
`void` | `buildFinished​(BuildEvent event)` | Fired when the build finishes, this adds the time taken and any error stacktrace to the build element and writes the document to disk.
`void` | `buildStarted​(BuildEvent event)` | Fired when the build starts, this builds the top-level element for the document and remembers the time of the start of the build.
`void` | `messageLogged​(BuildEvent event)` | Fired when a message is logged, this adds a message element to the most appropriate parent element (task, target or build) and records the priority and text of the message.
`void` | `setEmacsMode​(boolean emacsMode)` | Ignore emacs mode, as it has no meaning in XML format
`void` | `setErrorPrintStream​(java.io.PrintStream err)` | Ignore error print stream.
`void` | `setMessageOutputLevel​(int level)` | Set the logging level when using this as a Logger
`void` | `setOutputPrintStream​(java.io.PrintStream output)` | Set the output stream to which logging output is sent when operating as a logger.
`void` | `targetFinished​(BuildEvent event)` | Fired when a target finishes building, this adds the time taken and any error stacktrace to the appropriate target element in the log.
`void` | `targetStarted​(BuildEvent event)` | Fired when a target starts building, this pushes a timed element for the target onto the stack of elements for the current thread, remembering the current time and the name of the target.
`void` | `taskFinished​(BuildEvent event)` | Fired when a task finishes building, this adds the time taken and any error stacktrace to the appropriate task element in the log.
`void` | `taskStarted​(BuildEvent event)` | Fired when a task starts building, this pushes a timed element for the task onto the stack of elements for the current thread, remembering the current time and the name of the task.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Constructor Details

### XmlLogger

public XmlLogger()

## Method Details

### buildStarted

public void buildStarted​(BuildEvent event)
Fired when the build starts, this builds the top-level element for the document and remembers the time of the start of the build.

Specified by:
  `buildStarted` in interface `BuildListener`
Parameters:
  `event` - Ignored.

### buildFinished

public void buildFinished​(BuildEvent event)
Fired when the build finishes, this adds the time taken and any error stacktrace to the build element and writes the document to disk.

Specified by:
  `buildFinished` in interface `BuildListener`
Parameters:
  `event` - An event with any relevant extra information. Will not be `null`.
See Also:
  `BuildEvent.getException()`

### targetStarted

public void targetStarted​(BuildEvent event)
Fired when a target starts building, this pushes a timed element for the target onto the stack of elements for the current thread, remembering the current time and the name of the target.

Specified by:
  `targetStarted` in interface `BuildListener`
Parameters:
  `event` - An event with any relevant extra information. Will not be `null`.
See Also:
  `BuildEvent.getTarget()`

### targetFinished

public void targetFinished​(BuildEvent event)
Fired when a target finishes building, this adds the time taken and any error stacktrace to the appropriate target element in the log.

Specified by:
  `targetFinished` in interface `BuildListener`
Parameters:
  `event` - An event with any relevant extra information. Will not be `null`.
See Also:
  `BuildEvent.getException()`

### taskStarted

public void taskStarted​(BuildEvent event)
Fired when a task starts building, this pushes a timed element for the task onto the stack of elements for the current thread, remembering the current time and the name of the task.

Specified by:
  `taskStarted` in interface `BuildListener`
Parameters:
  `event` - An event with any relevant extra information. Will not be `null`.
See Also:
  `BuildEvent.getTask()`

### taskFinished

public void taskFinished​(BuildEvent event)
Fired when a task finishes building, this adds the time taken and any error stacktrace to the appropriate task element in the log.

Specified by:
  `taskFinished` in interface `BuildListener`
Parameters:
  `event` - An event with any relevant extra information. Will not be `null`.
See Also:
  `BuildEvent.getException()`

### messageLogged

public void messageLogged​(BuildEvent event)
Fired when a message is logged, this adds a message element to the most appropriate parent element (task, target or build) and records the priority and text of the message.

Specified by:
  `messageLogged` in interface `BuildListener`
Parameters:
  `event` - An event with any relevant extra information. Will not be `null`.
See Also:
  `BuildEvent.getMessage()`, `BuildEvent.getException()`, `BuildEvent.getPriority()`

### setMessageOutputLevel

public void setMessageOutputLevel​(int level)
Set the logging level when using this as a Logger

Specified by:
  `setMessageOutputLevel` in interface `BuildLogger`
Parameters:
  `level` - the logging level - see `Project` class for level definitions

### setOutputPrintStream

public void setOutputPrintStream​(java.io.PrintStream output)
Set the output stream to which logging output is sent when operating as a logger.

Specified by:
  `setOutputPrintStream` in interface `BuildLogger`
Parameters:
  `output` - the output PrintStream.

### setEmacsMode

public void setEmacsMode​(boolean emacsMode)
Ignore emacs mode, as it has no meaning in XML format

Specified by:
  `setEmacsMode` in interface `BuildLogger`
Parameters:
  `emacsMode` - true if logger should produce emacs compatible output

### setErrorPrintStream

public void setErrorPrintStream​(java.io.PrintStream err)
Ignore error print stream. All output will be written to either the XML log file or the PrintStream provided to setOutputPrintStream

Specified by:
  `setErrorPrintStream` in interface `BuildLogger`
Parameters:
  `err` - the stream we are going to ignore.