com.nokia.ant.taskdefs
Class LogRecorderTask

java.lang.Object
  extended by org.apache.tools.ant.ProjectComponent
      extended by org.apache.tools.ant.Task
          extended by com.nokia.ant.taskdefs.LogRecorderTask
All Implemented Interfaces:
java.lang.Cloneable, java.util.EventListener, org.apache.tools.ant.BuildListener, org.apache.tools.ant.SubBuildListener

public class LogRecorderTask
extends org.apache.tools.ant.Task
implements org.apache.tools.ant.SubBuildListener

Adds a listener to the current build process that records the output to a file.

Several recorders can exist at the same time. Each recorder is associated with a file. The filename is used as a unique identifier for the recorders. The first call to the recorder task with an unused filename will create a recorder (using the parameters provided) and add it to the listeners of the build. All subsequent calls to the recorder task using this filename will modify that recorders state (recording or not) or other properties (like logging level).

Some technical issues: the file's print stream is flushed for "finished" events (buildFinished, targetFinished and taskFinished), and is closed on a buildFinished event.

Since:
Ant 1.4
Version:
0.5
See Also:
LogRecorderEntry

Nested Class Summary
static class LogRecorderTask.ActionChoices
          A list of possible values for the setAction() method.
static class LogRecorderTask.VerbosityLevelChoices
           
 
Field Summary
 
Fields inherited from class org.apache.tools.ant.Task
target, taskName, taskType, wrapper
 
Fields inherited from class org.apache.tools.ant.ProjectComponent
description, location, project
 
Constructor Summary
LogRecorderTask()
           
 
Method Summary
 void buildFinished(org.apache.tools.ant.BuildEvent event)
          Cleans recorder registry.
 void buildStarted(org.apache.tools.ant.BuildEvent event)
          Empty implementation required by SubBuildListener interface.
 void execute()
          The main execution.
protected  com.nokia.ant.taskdefs.LogRecorderEntry getRecorder(java.lang.String name, org.apache.tools.ant.Project proj)
          Gets the recorder that's associated with the passed in name.
 void init()
          Overridden so we can add the task as build listener.
 void messageLogged(org.apache.tools.ant.BuildEvent event)
          Empty implementation required by SubBuildListener interface.
 void setAction(LogRecorderTask.ActionChoices action)
          Sets the action for the associated recorder entry.
 void setAppend(boolean append)
          Whether or not the logger should append to a previous file.
 void setBackup(boolean backup)
          Whether or not the logger should backup the previous file.
 void setClass(java.lang.String name)
           
 void setEmacsMode(boolean emacsMode)
          Set emacs mode.
 void setFilterSet(java.lang.String filterset)
          Sets filterset
 void setLoglevel(LogRecorderTask.VerbosityLevelChoices level)
          Sets the level to which this recorder entry should log to.
 void setName(java.lang.String fname)
          Sets the name of the file to log to, and the name of the recorder entry.
 void setRegexp(java.lang.String regexp)
           
 void subBuildFinished(org.apache.tools.ant.BuildEvent event)
          Cleans recorder registry, if this is the subbuild the task has been created in.
 void subBuildStarted(org.apache.tools.ant.BuildEvent event)
          Empty implementation required by SubBuildListener interface.
 void targetFinished(org.apache.tools.ant.BuildEvent event)
          Empty implementation required by SubBuildListener interface.
 void targetStarted(org.apache.tools.ant.BuildEvent event)
          Empty implementation required by SubBuildListener interface.
 void taskFinished(org.apache.tools.ant.BuildEvent event)
          Empty implementation required by SubBuildListener interface.
 void taskStarted(org.apache.tools.ant.BuildEvent event)
          Empty implementation required by SubBuildListener interface.
 
Methods inherited from class org.apache.tools.ant.Task
bindToOwner, getOwningTarget, getRuntimeConfigurableWrapper, getTaskName, getTaskType, getWrapper, handleErrorFlush, handleErrorOutput, handleFlush, handleInput, handleOutput, isInvalid, log, log, log, log, maybeConfigure, perform, reconfigure, setOwningTarget, setRuntimeConfigurableWrapper, setTaskName, setTaskType
 
Methods inherited from class org.apache.tools.ant.ProjectComponent
clone, getDescription, getLocation, getProject, setDescription, setLocation, setProject
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

LogRecorderTask

public LogRecorderTask()
Method Detail

init

public void init()
Overridden so we can add the task as build listener.

Overrides:
init in class org.apache.tools.ant.Task
Since:
Ant 1.7

setName

public void setName(java.lang.String fname)
Sets the name of the file to log to, and the name of the recorder entry.

Parameters:
fname - File name of logfile.

setClass

public void setClass(java.lang.String name)

setAction

public void setAction(LogRecorderTask.ActionChoices action)
Sets the action for the associated recorder entry.

Parameters:
action - The action for the entry to take: start or stop.

setAppend

public void setAppend(boolean append)
Whether or not the logger should append to a previous file.

Parameters:
append - if true, append to a previous file.

setBackup

public void setBackup(boolean backup)
Whether or not the logger should backup the previous file.

Parameters:
backup - if true, backup the exising file.

setEmacsMode

public void setEmacsMode(boolean emacsMode)
Set emacs mode.

Parameters:
emacsMode - if true use emacs mode

setLoglevel

public void setLoglevel(LogRecorderTask.VerbosityLevelChoices level)
Sets the level to which this recorder entry should log to.

Parameters:
level - the level to set.
See Also:
LogRecorderTask.VerbosityLevelChoices

setFilterSet

public void setFilterSet(java.lang.String filterset)
Sets filterset

Parameters:
filterset -

setRegexp

public void setRegexp(java.lang.String regexp)

execute

public void execute()
The main execution.

Overrides:
execute in class org.apache.tools.ant.Task
Throws:
org.apache.tools.ant.BuildException - on error

getRecorder

protected com.nokia.ant.taskdefs.LogRecorderEntry getRecorder(java.lang.String name,
                                                              org.apache.tools.ant.Project proj)
Gets the recorder that's associated with the passed in name. If the recorder doesn't exist, then a new one is created.

Parameters:
name - the name of the recoder
proj - the current project
Returns:
a recorder
Throws:
org.apache.tools.ant.BuildException - on error

buildStarted

public void buildStarted(org.apache.tools.ant.BuildEvent event)
Empty implementation required by SubBuildListener interface.

Specified by:
buildStarted in interface org.apache.tools.ant.BuildListener
Since:
Ant 1.7

subBuildStarted

public void subBuildStarted(org.apache.tools.ant.BuildEvent event)
Empty implementation required by SubBuildListener interface.

Specified by:
subBuildStarted in interface org.apache.tools.ant.SubBuildListener
Since:
Ant 1.7

targetStarted

public void targetStarted(org.apache.tools.ant.BuildEvent event)
Empty implementation required by SubBuildListener interface.

Specified by:
targetStarted in interface org.apache.tools.ant.BuildListener
Since:
Ant 1.7

targetFinished

public void targetFinished(org.apache.tools.ant.BuildEvent event)
Empty implementation required by SubBuildListener interface.

Specified by:
targetFinished in interface org.apache.tools.ant.BuildListener
Since:
Ant 1.7

taskStarted

public void taskStarted(org.apache.tools.ant.BuildEvent event)
Empty implementation required by SubBuildListener interface.

Specified by:
taskStarted in interface org.apache.tools.ant.BuildListener
Since:
Ant 1.7

taskFinished

public void taskFinished(org.apache.tools.ant.BuildEvent event)
Empty implementation required by SubBuildListener interface.

Specified by:
taskFinished in interface org.apache.tools.ant.BuildListener
Since:
Ant 1.7

messageLogged

public void messageLogged(org.apache.tools.ant.BuildEvent event)
Empty implementation required by SubBuildListener interface.

Specified by:
messageLogged in interface org.apache.tools.ant.BuildListener
Since:
Ant 1.7

buildFinished

public void buildFinished(org.apache.tools.ant.BuildEvent event)
Cleans recorder registry.

Specified by:
buildFinished in interface org.apache.tools.ant.BuildListener
Since:
Ant 1.7

subBuildFinished

public void subBuildFinished(org.apache.tools.ant.BuildEvent event)
Cleans recorder registry, if this is the subbuild the task has been created in.

Specified by:
subBuildFinished in interface org.apache.tools.ant.SubBuildListener
Since:
Ant 1.7