B.49 Record

A recorder is 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 output stream is flushed for "finished" events (buildFinished, targetFinished and taskFinished), and is closed on a buildFinished event.

Table B.51: Attributes

NameTypeDescriptionDefaultRequired
name String The name of the file this logger is associated with.n/ayes
action String This tells the logger what to do: should it start recording or stop? The first time that the recorder task is called for this logfile, and if this attribute is not provided, then the default for this attribute is "start". If this attribute is not provided on subsequent calls, then the state remains as previous. [Values = {start|stop}, Default = no state change] n/ano
append Boolean Should the recorder append to a file, or create a new one? This is only applicable the first time this task is called for this file. [Values = {yes|no}, Default=no] no no
emacsmode Boolean Removes [task] banners like Phings's -emacs command line switch if set to true. false no
loglevel String At what logging level should this recorder instance record to? This is not a once only parameter (like append is) -- you can increase or decrease the logging level as the build process continues. [Values= {error|warn|info|verbose|debug}, Default = no change] false no

B.49.1 Example

The following build.xml snippet is an example of how to use the recorder to record just the <echo> task:

...
<record name="log.txt" action="start"/>
<echo ...
<record name="log.txt" action="stop"/>
...
        

The following two calls to <record> set up two recorders: one to file "records-simple.log" at logging level info (the default) and one to file "ISO.log" using logging level of verbose.

...
<record name="records-simple.log"/>
<record name="ISO.log" loglevel="verbose"/>
...