You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ant.apache.org by gl...@locus.apache.org on 2000/11/17 16:03:50 UTC
cvs commit: jakarta-ant/src/main/org/apache/tools/ant/taskdefs Echo.java
glennm 00/11/17 07:03:50
Modified: src/main/org/apache/tools/ant/taskdefs Echo.java
Log:
Now writes message to the logger, rather than to System.out.
Also introduced logging levels to provide finer control over
when messages are writen out. The levels simply reflect the
current Project.MSG_* values.
Suggested by: Wolf Siberski
Revision Changes Path
1.5 +43 -5 jakarta-ant/src/main/org/apache/tools/ant/taskdefs/Echo.java
Index: Echo.java
===================================================================
RCS file: /home/cvs/jakarta-ant/src/main/org/apache/tools/ant/taskdefs/Echo.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- Echo.java 2000/09/27 15:58:49 1.4
+++ Echo.java 2000/11/17 15:03:50 1.5
@@ -55,6 +55,7 @@
package org.apache.tools.ant.taskdefs;
import org.apache.tools.ant.*;
+import org.apache.tools.ant.types.EnumeratedAttribute;
import java.io.*;
/**
* Echo
@@ -62,10 +63,13 @@
* @author costin@dnt.ro
*/
public class Echo extends Task {
- private String message = ""; // required
- private File file = null;
- private boolean append = false;
+ protected String message = ""; // required
+ protected File file = null;
+ protected boolean append = false;
+ // by default, messages are always displayed
+ protected int logLevel = Project.MSG_WARN;
+
/**
* Does the work.
*
@@ -73,7 +77,7 @@
*/
public void execute() throws BuildException {
if (file == null) {
- System.out.println(message);
+ log(message, logLevel);
} else {
FileWriter out = null;
try {
@@ -97,7 +101,7 @@
* @param msg Sets the value for the message variable.
*/
public void setMessage(String msg) {
- this.message = msg;
+ this.message = msg;
}
/**
@@ -120,5 +124,39 @@
public void addText(String msg) {
message +=
ProjectHelper.replaceProperties(msg, project.getProperties());
+ }
+
+ /**
+ * Set the logging level to one of
+ * <ul>
+ * <li>error</li>
+ * <li>warning</li>
+ * <li>info</li>
+ * <li>verbose</li>
+ * <li>debug</li>
+ * <ul>
+ * <p>The default is "warning" to ensure that messages are
+ * displayed by default when using the -quiet command line option.</p>
+ */
+ public void setLevel(EchoLevel echoLevel) {
+ String option = echoLevel.getValue();
+ if (option.equals("error")) {
+ logLevel = Project.MSG_ERR;
+ } else if (option.equals("warning")) {
+ logLevel = Project.MSG_WARN;
+ } else if (option.equals("info")) {
+ logLevel = Project.MSG_INFO;
+ } else if (option.equals("verbose")) {
+ logLevel = Project.MSG_VERBOSE;
+ } else {
+ // must be "debug"
+ logLevel = Project.MSG_DEBUG;
+ }
+ }
+
+ public static class EchoLevel extends EnumeratedAttribute {
+ public String[] getValues() {
+ return new String[] {"error", "warning", "info", "verbose", "debug"};
+ }
}
}