Java/Ant/Log

Материал из Java эксперт
Версия от 09:37, 1 июня 2010; Admin (обсуждение | вклад) (1 версия)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

A custom logger

   <source lang="java">

/*

*
*  Licensed under the Apache License, Version 2.0 (the "License");
*  you may not use this file except in compliance with the License.
*  You may obtain a copy of the License at
*
*      http://www.apache.org/licenses/LICENSE-2.0
*
*  Unless required by applicable law or agreed to in writing, software
*  distributed under the License is distributed on an "AS IS" BASIS,
*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
*  See the License for the specific language governing permissions and
*  limitations under the License.
*
*/

package org.mwrm.ant.loggers; import java.io.PrintStream; import org.apache.tools.ant.Project; import org.apache.tools.ant.BuildLogger; import org.apache.tools.ant.BuildEvent; /**

*

A class that demonstrates some of the functionality * of a custom logger.

*/

public class BuildEventLogger implements BuildLogger {

   /**
    * PrintStream to write non-error messages to.
    */
   private PrintStream out;
   /**
    * PrintStream to write error messages to.
    */
   private PrintStream err;
   /**
    * Sets whether to tailor output for Emacs, etc.
    * The default is false.
    */
   private boolean emacsMode = false;
   /**
    * We"ll set this logger to log only warnings.
    */
   private int msgOutputLevel = Project.MSG_WARN;
   /**
*

Signals that a build has started. This event * is fired before any targets have started.

    *
    * @param start An event with any relevant extra information.
    *              Must not be null.
    */
   public final void buildStarted(final BuildEvent start) {
       start.getProject().log("Message from buildStarted().", Project.MSG_ERR);
   }
   /**
*

Signals that the last target has finished. This event * will still be fired if an error occurred during the build.

    *
    * @param finish An event with any relevant extra information.
    *              Must not be null.
    *
    * @see BuildEvent#getException()
    */
   public void buildFinished(final BuildEvent finish) {
       // empty
   }
   /**
*

Signals that a target is starting.

    *
    * @param start An event with any relevant extra information.
    *              Must not be null.
    *
    * @see BuildEvent#getTarget()
    */
   public void targetStarted(final BuildEvent start) {
       // empty
   }
   /**
*

Signals that a target has finished. This event will * still be fired if an error occurred during the build.

    *
    * @param finish An event with any relevant extra information.
    *              Must not be null.
    *
    * @see BuildEvent#getException()
    */
   public void targetFinished(final BuildEvent finish) {
       // empty
   }
   /**
*

Signals that a task is starting.

    *
    * @param start An event with any relevant extra information.
    *              Must not be null.
    *
    * @see BuildEvent#getTask()
    */
   public void taskStarted(final BuildEvent start) {
       // empty
   }
   /**
*

Signals that a task has finished. This event will still * be fired if an error occurred during the build.

    *
    * @param finish An event with any relevant extra information.
    *              Must not be null.
    *
    * @see BuildEvent#getException()
    */
   public void taskFinished(final BuildEvent finish) {
       // empty
   }
/**

When a message is sent to this logger, Ant calls this method.

    * @param event An event with any relevant extra information.
    *              Must not be null.
    *
    * @see BuildEvent#getMessage()
    * @see BuildEvent#getPriority()
    */
   public final void messageLogged(final BuildEvent event) {
       /// We need to determine how important this message is
       int priority = event.getPriority();
       // If it"s as important as our log level, we display it
       if (priority <= msgOutputLevel) {
           out.println("messageLogged: " + event.getMessage());
       }
   }
   /**
*

Sets the output stream to which this logger is to send its output.

    *
    * @param output The output stream for the logger.
    *               Must not be null.
    */
   public final void setOutputPrintStream(final PrintStream output) {
       this.out = new PrintStream(output, true);
   }
   /**
*

Sets the output stream to which this logger * is to send error messages.

    *
    * @param errorStream The error stream for the logger.
    *                    Must not be null.
    */
   public final void setErrorPrintStream(final PrintStream errorStream) {
       this.err = new PrintStream(errorStream, true);
   }
   /**
*

Sets this logger to produce Emacs * (and other editor) friendly output.

    *
    * @param mode true if output is to be unadorned so that
    *                  Emacs and other editors can parse files names, etc.
    */
   public final void setEmacsMode(final boolean mode) {
       this.emacsMode = mode;
   }
   /**
*

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 * {@link Project 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 for this logger is * {@link Project#MSG_WARN Project.MSG_WARN}.

    *
    * @param level the logging level for the logger.
    */
   public void setMessageOutputLevel(final int level) {
       // We will leave this empty to use the default level,
       // which we set above
   }

}

      </source>
   
  
 
  



Ant With Log