Package org.apache.tools.ant

# Class XmlLogger

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

All Implemented Interfaces:
  `EventListener`, `BuildListener`, `BuildLogger`

public class XmlLogger extends 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​(PrintStream err)`
  Ignore error print stream.
  `void`
  `setMessageOutputLevel​(int level)`
  Set the logging level when using this as a Logger
  `void`
  `setOutputPrintStream​(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​(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​(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.