Package org.apache.tools.ant

# Class DefaultLogger

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

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

Direct Known Subclasses:
  `AnsiColorLogger`, `MailLogger`, `NoBannerLogger`, `ProfileLogger`, `SilentLogger`, `TimestampedLogger`

public class DefaultLogger extends Object implements BuildLogger
Writes build events to a PrintStream. Currently, it only writes which targets are being executed, and any messages that get logged.

## Field Summary

Fields
Modifier and Type
Field
Description
`protected boolean`
`emacsMode`
Whether or not to use emacs-style output
`protected PrintStream`
`err`
PrintStream to write error messages to
`static final int`
`LEFT_COLUMN_SIZE`
Size of left-hand column for right-justified task name.
`protected static final String`
`lSep`
Deprecated.
`protected int`
`msgOutputLevel`
Lowest level of message to write out
`protected PrintStream`
`out`
PrintStream to write non-error messages to

## Constructor Summary

Constructors
Constructor
Description
`DefaultLogger()`
Sole constructor.

## Method Summary

Modifier and Type
Method
Description
`void`
`buildFinished(BuildEvent event)`
Prints whether the build succeeded or failed, any errors the occurred during the build, and how long the build took.
`void`
`buildStarted(BuildEvent event)`
Responds to a build being started by just remembering the current time.
`protected String`
`extractProjectName(BuildEvent event)`
Get the project name or null
`protected static String`
`formatTime(long millis)`
Convenience method to format a specified length of time.
`protected String`
`getBuildFailedMessage()`
This is an override point: the message that indicates whether a build failed.
`protected String`
`getBuildSuccessfulMessage()`
This is an override point: the message that indicates that a build succeeded.
`int`
`getMessageOutputLevel()`
`protected String`
`getTimestamp()`
Get the current time.
`protected void`
`log(String message)`
Empty implementation which allows subclasses to receive the same output that is generated here.
`void`
`messageLogged(BuildEvent event)`
Logs a message, if the priority is suitable.
`protected void`
`printMessage(String message, PrintStream stream, int priority)`
Prints a message to a PrintStream.
`void`
`setEmacsMode(boolean emacsMode)`
Sets this logger to produce emacs (and other editor) friendly output.
`void`
`setErrorPrintStream(PrintStream err)`
Sets the output stream to which this logger is to send error messages.
`void`
`setMessageOutputLevel(int level)`
Sets the highest level of message this logger should respond to.
`void`
`setOutputPrintStream(PrintStream output)`
Sets the output stream to which this logger is to send its output.
`void`
`targetFinished(BuildEvent event)`
No-op implementation.
`void`
`targetStarted(BuildEvent event)`
Logs a message to say that the target has started if this logger allows information-level messages.
`void`
`taskFinished(BuildEvent event)`
No-op implementation.
`void`
`taskStarted(BuildEvent event)`
No-op implementation.

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

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

## Field Details

### LEFT_COLUMN_SIZE

public static final int LEFT_COLUMN_SIZE
Size of left-hand column for right-justified task name.

See Also:
  - `messageLogged(BuildEvent)`
  - Constant Field Values

### out

protected PrintStream out
PrintStream to write non-error messages to

### err

protected PrintStream err
PrintStream to write error messages to

### msgOutputLevel

protected int msgOutputLevel
Lowest level of message to write out

### lSep

@Deprecated protected static final String lSep
Deprecated.
Line separator

### emacsMode

protected boolean emacsMode
Whether or not to use emacs-style output

## Constructor Details

### DefaultLogger

public DefaultLogger()
Sole constructor.

## Method Details

### setMessageOutputLevel

public void setMessageOutputLevel(int level)
Sets the highest level of message this logger should respond to. Only messages with a message level lower than or equal to the given level should be written to the log.

Constants for the message levels are in the `Project` class. The order of the levels, from least to most verbose, is `MSG_ERR`, `MSG_WARN`, `MSG_INFO`, `MSG_VERBOSE`, `MSG_DEBUG`.

The default message level for DefaultLogger is Project.MSG_ERR.

Specified by:
  `setMessageOutputLevel` in interface `BuildLogger`
Parameters:
  `level` - the logging level for the logger.

### getMessageOutputLevel

public int getMessageOutputLevel()

Specified by:
  `getMessageOutputLevel` in interface `BuildLogger`
Returns:
  Returns the `currently set` message output level. The `default` implementation of this method returns `MSG_INFO`.

### setOutputPrintStream

public void setOutputPrintStream(PrintStream output)
Sets the output stream to which this logger is to send its output.

Specified by:
  `setOutputPrintStream` in interface `BuildLogger`
Parameters:
  `output` - The output stream for the logger. Must not be `null`.

### setErrorPrintStream

public void setErrorPrintStream(PrintStream err)
Sets the output stream to which this logger is to send error messages.

Specified by:
  `setErrorPrintStream` in interface `BuildLogger`
Parameters:
  `err` - The error stream for the logger. Must not be `null`.

### setEmacsMode

public void setEmacsMode(boolean emacsMode)
Sets this logger to produce emacs (and other editor) friendly output.

Specified by:
  `setEmacsMode` in interface `BuildLogger`
Parameters:
  `emacsMode` - `true` if output is to be unadorned so that emacs and other editors can parse files names, etc.

### buildStarted

public void buildStarted(BuildEvent event)
Responds to a build being started by just remembering the current time.

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

### buildFinished

public void buildFinished(BuildEvent event)
Prints whether the build succeeded or failed, any errors the occurred during the build, and how long the build took.

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

### getBuildFailedMessage

protected String getBuildFailedMessage()
This is an override point: the message that indicates whether a build failed. Subclasses can change/enhance the message.

Returns:
  The classic "BUILD FAILED"

### getBuildSuccessfulMessage

protected String getBuildSuccessfulMessage()
This is an override point: the message that indicates that a build succeeded. Subclasses can change/enhance the message.

Returns:
  The classic "BUILD SUCCESSFUL"

### targetStarted

public void targetStarted(BuildEvent event)
Logs a message to say that the target has started if this logger allows information-level messages.

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

### targetFinished

public void targetFinished(BuildEvent event)
No-op implementation.

Specified by:
  `targetFinished` in interface `BuildListener`
Parameters:
  `event` - Ignored.
See Also:
  - `BuildEvent.getException()`

### taskStarted

public void taskStarted(BuildEvent event)
No-op implementation.

Specified by:
  `taskStarted` in interface `BuildListener`
Parameters:
  `event` - Ignored.
See Also:
  - `BuildEvent.getTask()`

### taskFinished

public void taskFinished(BuildEvent event)
No-op implementation.

Specified by:
  `taskFinished` in interface `BuildListener`
Parameters:
  `event` - Ignored.
See Also:
  - `BuildEvent.getException()`

### messageLogged

public void messageLogged(BuildEvent event)
Logs a message, if the priority is suitable. In non-emacs mode, task level messages are prefixed by the task name which is right-justified.

Specified by:
  `messageLogged` in interface `BuildListener`
Parameters:
  `event` - A BuildEvent containing message information. Must not be `null`.
See Also:
  - `BuildEvent.getMessage()`
  - `BuildEvent.getException()`
  - `BuildEvent.getPriority()`

### formatTime

protected static String formatTime(long millis)
Convenience method to format a specified length of time.

Parameters:
  `millis` - Length of time to format, in milliseconds.
Returns:
  the time as a formatted string.
See Also:
  - `DateUtils.formatElapsedTime(long)`

### printMessage

protected void printMessage(String message, PrintStream stream, int priority)
Prints a message to a PrintStream.

Parameters:
  `message` - The message to print. Should not be `null`.
  `stream` - A PrintStream to print the message to. Must not be `null`.
  `priority` - The priority of the message. (Ignored in this implementation.)

### log

protected void log(String message)
Empty implementation which allows subclasses to receive the same output that is generated here.

Parameters:
  `message` - Message being logged. Should not be `null`.

### getTimestamp

protected String getTimestamp()
Get the current time.

Returns:
  the current time as a formatted string.
Since:
  Ant1.7.1

### extractProjectName

protected String extractProjectName(BuildEvent event)
Get the project name or null

Parameters:
  `event` - the event
Returns:
  the project that raised this event
Since:
  Ant1.7.1