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 booleanemacsModeWhether or not to use emacs-style outputprotected java.io.PrintStreamerrPrintStream to write error messages tostatic intLEFT_COLUMN_SIZESize of left-hand column for right-justified task name.protected static java.lang.StringlSepDeprecated.protected intmsgOutputLevelLowest level of message to write outprotected java.io.PrintStreamoutPrintStream to write non-error messages to
-
Constructor Summary
Constructors Constructor Description DefaultLogger()Sole constructor.
-
Method Summary
Modifier and Type Method Description voidbuildFinished(BuildEvent event)Prints whether the build succeeded or failed, any errors the occurred during the build, and how long the build took.voidbuildStarted(BuildEvent event)Responds to a build being started by just remembering the current time.protected java.lang.StringextractProjectName(BuildEvent event)Get the project name or nullprotected static java.lang.StringformatTime(long millis)Convenience method to format a specified length of time.protected java.lang.StringgetBuildFailedMessage()This is an override point: the message that indicates whether a build failed.protected java.lang.StringgetBuildSuccessfulMessage()This is an override point: the message that indicates that a build succeeded.protected java.lang.StringgetTimestamp()Get the current time.protected voidlog(java.lang.String message)Empty implementation which allows subclasses to receive the same output that is generated here.voidmessageLogged(BuildEvent event)Logs a message, if the priority is suitable.protected voidprintMessage(java.lang.String message, java.io.PrintStream stream, int priority)Prints a message to a PrintStream.voidsetEmacsMode(boolean emacsMode)Sets this logger to produce emacs (and other editor) friendly output.voidsetErrorPrintStream(java.io.PrintStream err)Sets the output stream to which this logger is to send error messages.voidsetMessageOutputLevel(int level)Sets the highest level of message this logger should respond to.voidsetOutputPrintStream(java.io.PrintStream output)Sets the output stream to which this logger is to send its output.voidtargetFinished(BuildEvent event)No-op implementation.voidtargetStarted(BuildEvent event)Logs a message to say that the target has started if this logger allows information-level messages.voidtaskFinished(BuildEvent event)No-op implementation.voidtaskStarted(BuildEvent event)No-op implementation.
-
-
-
Field Detail
-
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
-
-
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
Projectclass. 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:
setMessageOutputLevelin 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:
setOutputPrintStreamin 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:
setErrorPrintStreamin 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:
setEmacsModein interfaceBuildLogger- Parameters:
emacsMode-trueif 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:
buildStartedin 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:
buildFinishedin 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:
targetStartedin 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:
targetFinishedin interfaceBuildListener- Parameters:
event- Ignored.- See Also:
BuildEvent.getException()
-
taskStarted
public void taskStarted(BuildEvent event)
No-op implementation.- Specified by:
taskStartedin interfaceBuildListener- Parameters:
event- Ignored.- See Also:
BuildEvent.getTask()
-
taskFinished
public void taskFinished(BuildEvent event)
No-op implementation.- Specified by:
taskFinishedin 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:
messageLoggedin 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
-
-