org.apache.tools.antClass 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 BuildLoggerGenerates 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 propertyXmlLogger.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 and Description XmlLogger()
Constructs a new BuildListener that logs build events to an XML file.
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method and 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 formatvoid
setErrorPrintStream(java.io.PrintStream err)
Ignore error print stream.void
setMessageOutputLevel(int level)
Set the logging level when using this as a Loggervoid
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.
Constructor Detail
XmlLogger
public XmlLogger()Constructs a new BuildListener that logs build events to an XML file.
Method Detail
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 interfaceBuildListener
- 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 interfaceBuildListener
- Parameters:
event
- An event with any relevant extra information. Will not benull
.- 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 interfaceBuildListener
- Parameters:
event
- An event with any relevant extra information. Will not benull
.- 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 interfaceBuildListener
- Parameters:
event
- An event with any relevant extra information. Will not benull
.- 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 interfaceBuildListener
- Parameters:
event
- An event with any relevant extra information. Will not benull
.- 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 interfaceBuildListener
- Parameters:
event
- An event with any relevant extra information. Will not benull
.- 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 interfaceBuildListener
- Parameters:
event
- An event with any relevant extra information. Will not benull
.- 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 interfaceBuildLogger
- Parameters:
level
- the logging level - seeProject
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 interfaceBuildLogger
- 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 interfaceBuildLogger
- 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 interfaceBuildLogger
- Parameters:
err
- the stream we are going to ignore.