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 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
Deprecated.protected int
msgOutputLevel
Lowest level of message to write outprotected 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 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 Details
-
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
@Deprecated protected static final java.lang.String lSepDeprecated.Line separator -
emacsMode
protected boolean emacsModeWhether 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, 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
Responds to a build being started by just remembering the current time.- Specified by:
buildStarted
in interfaceBuildListener
- Parameters:
event
- Ignored.
-
buildFinished
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
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
No-op implementation.- Specified by:
targetFinished
in interfaceBuildListener
- Parameters:
event
- Ignored.- See Also:
BuildEvent.getException()
-
taskStarted
No-op implementation.- Specified by:
taskStarted
in interfaceBuildListener
- Parameters:
event
- Ignored.- See Also:
BuildEvent.getTask()
-
taskFinished
No-op implementation.- Specified by:
taskFinished
in interfaceBuildListener
- Parameters:
event
- Ignored.- See Also:
BuildEvent.getException()
-
messageLogged
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
Get the project name or null- Parameters:
event
- the event- Returns:
- the project that raised this event
- Since:
- Ant1.7.1
-