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 Details

    • LEFT_COLUMN_SIZE

      public static final int LEFT_COLUMN_SIZE
      Size of left-hand column for right-justified task name.
      See Also:
    • 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:
    • 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:
    • targetFinished

      public void targetFinished(BuildEvent event)
      No-op implementation.
      Specified by:
      targetFinished in interface BuildListener
      Parameters:
      event - Ignored.
      See Also:
    • taskStarted

      public void taskStarted(BuildEvent event)
      No-op implementation.
      Specified by:
      taskStarted in interface BuildListener
      Parameters:
      event - Ignored.
      See Also:
    • taskFinished

      public void taskFinished(BuildEvent event)
      No-op implementation.
      Specified by:
      taskFinished in interface BuildListener
      Parameters:
      event - Ignored.
      See Also:
    • 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:
    • 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:
    • 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