org.apache.tools.antClass 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 BuildLoggerWrites 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 and Description protected boolean
emacsMode
Whether or not to use emacs-style outputprotected java.io.PrintStream
err
PrintStream to write error messages tostatic int
LEFT_COLUMN_SIZE
Size of left-hand column for right-justified task name.protected static java.lang.String
lSep
Line separatorprotected int
msgOutputLevel
Lowest level of message to write outprotected java.io.PrintStream
out
PrintStream to write non-error messages to
Constructor Summary
Constructors Constructor and Description DefaultLogger()
Sole constructor.
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method and 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 nullprotected 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.
Field Detail
LEFT_COLUMN_SIZE
public static final int LEFT_COLUMN_SIZESize of left-hand column for right-justified task name.
- See Also:
messageLogged(BuildEvent)
, Constant Field Values
out
protected java.io.PrintStream outPrintStream to write non-error messages to
err
protected java.io.PrintStream errPrintStream to write error messages to
msgOutputLevel
protected int msgOutputLevelLowest level of message to write out
lSep
protected static final java.lang.String lSepLine separator
emacsMode
protected boolean emacsModeWhether or not to use emacs-style output
Method Detail
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, isMSG_ERR
,MSG_WARN
,MSG_INFO
,MSG_VERBOSE
,MSG_DEBUG
.The default message level for DefaultLogger is Project.MSG_ERR.
- Specified by:
setMessageOutputLevel
in interfaceBuildLogger
- 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 interfaceBuildLogger
- Parameters:
output
- The output stream for the logger. Must not benull
.
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 interfaceBuildLogger
- Parameters:
err
- The error stream for the logger. Must not benull
.
setEmacsMode
public void setEmacsMode(boolean emacsMode)Sets this logger to produce emacs (and other editor) friendly output.
- Specified by:
setEmacsMode
in interfaceBuildLogger
- 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 interfaceBuildListener
- 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 interfaceBuildListener
- Parameters:
event
- An event with any relevant extra information. Must not benull
.- 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 interfaceBuildListener
- Parameters:
event
- An event with any relevant extra information. Must not benull
.- See Also:
BuildEvent.getTarget()
targetFinished
public void targetFinished(BuildEvent event)No-op implementation.
- Specified by:
targetFinished
in interfaceBuildListener
- Parameters:
event
- Ignored.- See Also:
BuildEvent.getException()
taskStarted
public void taskStarted(BuildEvent event)No-op implementation.
- Specified by:
taskStarted
in interfaceBuildListener
- Parameters:
event
- Ignored.- See Also:
BuildEvent.getTask()
taskFinished
public void taskFinished(BuildEvent event)No-op implementation.
- Specified by:
taskFinished
in interfaceBuildListener
- 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 interfaceBuildListener
- Parameters:
event
- A BuildEvent containing message information. Must not benull
.- 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 benull
.stream
- A PrintStream to print the message to. Must not benull
.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 benull
.
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