Package org.apache.tools.ant

# Class DefaultLogger

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

All Implemented Interfaces:
  `java.util.EventListener`, `BuildListener`, `BuildLogger`

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

    public class DefaultLogger
    extends java.lang.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 java.io.PrintStream` | `err` | PrintStream to write error messages to
  `static int` | `LEFT_COLUMN_SIZE` | Size of left-hand column for right-justified task name.
  `protected static java.lang.String` | `lSep` | Deprecated.
  `protected int` | `msgOutputLevel` | Lowest level of message to write out
  `protected java.io.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 java.lang.String` | `extractProjectName​(BuildEvent event)` | Get the project name or null
  `protected static java.lang.String` | `formatTime​(long millis)` | Convenience method to format a specified length of time.
  `protected java.lang.String` | `getBuildFailedMessage()` | This is an override point: the message that indicates whether a build failed.
  `protected java.lang.String` | `getBuildSuccessfulMessage()` | This is an override point: the message that indicates that a build succeeded.
  `protected java.lang.String` | `getTimestamp()` | Get the current time.
  `protected void` | `log​(java.lang.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​(java.lang.String message, java.io.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​(java.io.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​(java.io.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 java.io.PrintStream out
    PrintStream to write non-error messages to

  - ### err

    protected java.io.PrintStream err
    PrintStream to write error messages to

  - ### msgOutputLevel

    protected int msgOutputLevel
    Lowest level of message to write out

  - ### lSep

    @Deprecated protected static final java.lang.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.

  - ### setOutputPrintStream

    public void setOutputPrintStream​(java.io.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​(java.io.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 java.lang.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 java.lang.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 java.lang.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​(java.lang.String message, java.io.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​(java.lang.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 java.lang.String getTimestamp()
    Get the current time.
    Returns:
      the current time as a formatted string.
    Since:
      Ant1.7.1

  - ### extractProjectName

    protected java.lang.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