<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://www.jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java%2FAnt%2FLog</id>
		<title>Java/Ant/Log - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://www.jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java%2FAnt%2FLog"/>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java/Ant/Log&amp;action=history"/>
		<updated>2026-04-21T13:16:41Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://www.jexp.ru/index.php?title=Java/Ant/Log&amp;diff=7235&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java/Ant/Log&amp;diff=7235&amp;oldid=prev"/>
				<updated>2010-06-01T06:37:24Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 06:37, 1 июня 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>http://www.jexp.ru/index.php?title=Java/Ant/Log&amp;diff=7234&amp;oldid=prev</id>
		<title> в 18:01, 31 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java/Ant/Log&amp;diff=7234&amp;oldid=prev"/>
				<updated>2010-05-31T18:01:44Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== A custom logger ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
 *&lt;br /&gt;
 *  Licensed under the Apache License, Version 2.0 (the &amp;quot;License&amp;quot;);&lt;br /&gt;
 *  you may not use this file except in compliance with the License.&lt;br /&gt;
 *  You may obtain a copy of the License at&lt;br /&gt;
 *&lt;br /&gt;
 *      http://www.apache.org/licenses/LICENSE-2.0&lt;br /&gt;
 *&lt;br /&gt;
 *  Unless required by applicable law or agreed to in writing, software&lt;br /&gt;
 *  distributed under the License is distributed on an &amp;quot;AS IS&amp;quot; BASIS,&lt;br /&gt;
 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.&lt;br /&gt;
 *  See the License for the specific language governing permissions and&lt;br /&gt;
 *  limitations under the License.&lt;br /&gt;
 *&lt;br /&gt;
 */&lt;br /&gt;
package org.mwrm.ant.loggers;&lt;br /&gt;
import java.io.PrintStream;&lt;br /&gt;
import org.apache.tools.ant.Project;&lt;br /&gt;
import org.apache.tools.ant.BuildLogger;&lt;br /&gt;
import org.apache.tools.ant.BuildEvent;&lt;br /&gt;
/**&lt;br /&gt;
 * &amp;lt;p&amp;gt;A class that demonstrates some of the functionality&lt;br /&gt;
 * of a custom logger.&amp;lt;/p&amp;gt;&lt;br /&gt;
 */&lt;br /&gt;
public class BuildEventLogger implements BuildLogger {&lt;br /&gt;
    /**&lt;br /&gt;
     * PrintStream to write non-error messages to.&lt;br /&gt;
     */&lt;br /&gt;
    private PrintStream out;&lt;br /&gt;
    /**&lt;br /&gt;
     * PrintStream to write error messages to.&lt;br /&gt;
     */&lt;br /&gt;
    private PrintStream err;&lt;br /&gt;
    /**&lt;br /&gt;
     * Sets whether to tailor output for Emacs, etc.&lt;br /&gt;
     * The default is &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;.&lt;br /&gt;
     */&lt;br /&gt;
    private boolean emacsMode = false;&lt;br /&gt;
    /**&lt;br /&gt;
     * We&amp;quot;ll set this logger to log only warnings.&lt;br /&gt;
     */&lt;br /&gt;
    private int msgOutputLevel = Project.MSG_WARN;&lt;br /&gt;
    /**&lt;br /&gt;
     * &amp;lt;p&amp;gt;Signals that a build has started. This event&lt;br /&gt;
     * is fired before any targets have started.&amp;lt;/p&amp;gt;&lt;br /&gt;
     *&lt;br /&gt;
     * @param start An event with any relevant extra information.&lt;br /&gt;
     *              Must not be &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;.&lt;br /&gt;
     */&lt;br /&gt;
    public final void buildStarted(final BuildEvent start) {&lt;br /&gt;
        start.getProject().log(&amp;quot;Message from buildStarted().&amp;quot;, Project.MSG_ERR);&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * &amp;lt;p&amp;gt;Signals that the last target has finished. This event&lt;br /&gt;
     * will still be fired if an error occurred during the build.&amp;lt;/p&amp;gt;&lt;br /&gt;
     *&lt;br /&gt;
     * @param finish An event with any relevant extra information.&lt;br /&gt;
     *              Must not be &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;.&lt;br /&gt;
     *&lt;br /&gt;
     * @see BuildEvent#getException()&lt;br /&gt;
     */&lt;br /&gt;
    public void buildFinished(final BuildEvent finish) {&lt;br /&gt;
        // empty&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * &amp;lt;p&amp;gt;Signals that a target is starting.&amp;lt;/p&amp;gt;&lt;br /&gt;
     *&lt;br /&gt;
     * @param start An event with any relevant extra information.&lt;br /&gt;
     *              Must not be &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;.&lt;br /&gt;
     *&lt;br /&gt;
     * @see BuildEvent#getTarget()&lt;br /&gt;
     */&lt;br /&gt;
    public void targetStarted(final BuildEvent start) {&lt;br /&gt;
        // empty&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * &amp;lt;p&amp;gt;Signals that a target has finished. This event will&lt;br /&gt;
     * still be fired if an error occurred during the build.&amp;lt;/p&amp;gt;&lt;br /&gt;
     *&lt;br /&gt;
     * @param finish An event with any relevant extra information.&lt;br /&gt;
     *              Must not be &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;.&lt;br /&gt;
     *&lt;br /&gt;
     * @see BuildEvent#getException()&lt;br /&gt;
     */&lt;br /&gt;
    public void targetFinished(final BuildEvent finish) {&lt;br /&gt;
        // empty&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * &amp;lt;p&amp;gt;Signals that a task is starting.&amp;lt;/p&amp;gt;&lt;br /&gt;
     *&lt;br /&gt;
     * @param start An event with any relevant extra information.&lt;br /&gt;
     *              Must not be &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;.&lt;br /&gt;
     *&lt;br /&gt;
     * @see BuildEvent#getTask()&lt;br /&gt;
     */&lt;br /&gt;
    public void taskStarted(final BuildEvent start) {&lt;br /&gt;
        // empty&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * &amp;lt;p&amp;gt;Signals that a task has finished. This event will still&lt;br /&gt;
     * be fired if an error occurred during the build.&amp;lt;/p&amp;gt;&lt;br /&gt;
     *&lt;br /&gt;
     * @param finish An event with any relevant extra information.&lt;br /&gt;
     *              Must not be &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;.&lt;br /&gt;
     *&lt;br /&gt;
     * @see BuildEvent#getException()&lt;br /&gt;
     */&lt;br /&gt;
    public void taskFinished(final BuildEvent finish) {&lt;br /&gt;
        // empty&lt;br /&gt;
    }&lt;br /&gt;
    /** &amp;lt;p&amp;gt;When a message is sent to this logger, Ant calls this method.&amp;lt;/p&amp;gt;&lt;br /&gt;
     * @param event An event with any relevant extra information.&lt;br /&gt;
     *              Must not be &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;.&lt;br /&gt;
     *&lt;br /&gt;
     * @see BuildEvent#getMessage()&lt;br /&gt;
     * @see BuildEvent#getPriority()&lt;br /&gt;
     */&lt;br /&gt;
    public final void messageLogged(final BuildEvent event) {&lt;br /&gt;
        /// We need to determine how important this message is&lt;br /&gt;
        int priority = event.getPriority();&lt;br /&gt;
        // If it&amp;quot;s as important as our log level, we display it&lt;br /&gt;
        if (priority &amp;lt;= msgOutputLevel) {&lt;br /&gt;
            out.println(&amp;quot;messageLogged: &amp;quot; + event.getMessage());&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * &amp;lt;p&amp;gt;Sets the output stream to which this logger is to send its output.&amp;lt;/p&amp;gt;&lt;br /&gt;
     *&lt;br /&gt;
     * @param output The output stream for the logger.&lt;br /&gt;
     *               Must not be &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;.&lt;br /&gt;
     */&lt;br /&gt;
    public final void setOutputPrintStream(final PrintStream output) {&lt;br /&gt;
        this.out = new PrintStream(output, true);&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * &amp;lt;p&amp;gt;Sets the output stream to which this logger&lt;br /&gt;
     * is to send error messages.&amp;lt;/p&amp;gt;&lt;br /&gt;
     *&lt;br /&gt;
     * @param errorStream The error stream for the logger.&lt;br /&gt;
     *                    Must not be &amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;.&lt;br /&gt;
     */&lt;br /&gt;
    public final void setErrorPrintStream(final PrintStream errorStream) {&lt;br /&gt;
        this.err = new PrintStream(errorStream, true);&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * &amp;lt;p&amp;gt;Sets this logger to produce Emacs&lt;br /&gt;
     * (and other editor) friendly output.&amp;lt;/p&amp;gt;&lt;br /&gt;
     *&lt;br /&gt;
     * @param mode &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; if output is to be unadorned so that&lt;br /&gt;
     *                  Emacs and other editors can parse files names, etc.&lt;br /&gt;
     */&lt;br /&gt;
    public final void setEmacsMode(final boolean mode) {&lt;br /&gt;
        this.emacsMode = mode;&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * &amp;lt;p&amp;gt;Sets the highest level of message this logger should respond to.&amp;lt;/p&amp;gt;&lt;br /&gt;
     *&lt;br /&gt;
     * &amp;lt;p&amp;gt;Only messages with a message level lower than or equal to the&lt;br /&gt;
     * given level should be written to the log.&amp;lt;/p&amp;gt;&lt;br /&gt;
     * &amp;lt;p&amp;gt;&lt;br /&gt;
     * Constants for the message levels are in the&lt;br /&gt;
     * {@link Project Project} class. The order of the levels, from least&lt;br /&gt;
     * to most verbose, is &amp;lt;code&amp;gt;MSG_ERR&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;MSG_WARN&amp;lt;/code&amp;gt;,&lt;br /&gt;
     * &amp;lt;code&amp;gt;MSG_INFO&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;MSG_VERBOSE&amp;lt;/code&amp;gt;,&lt;br /&gt;
     * &amp;lt;code&amp;gt;MSG_DEBUG&amp;lt;/code&amp;gt;.&amp;lt;/p&amp;gt;&lt;br /&gt;
     * &amp;lt;p&amp;gt;The default for this logger is&lt;br /&gt;
     * {@link Project#MSG_WARN Project.MSG_WARN}.&amp;lt;/p&amp;gt;&lt;br /&gt;
     *&lt;br /&gt;
     * @param level the logging level for the logger.&lt;br /&gt;
     */&lt;br /&gt;
    public void setMessageOutputLevel(final int level) {&lt;br /&gt;
        // We will leave this empty to use the default level,&lt;br /&gt;
        // which we set above&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Ant With Log ==&lt;/div&gt;</summary>
			</entry>

	</feed>