<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements.  See the NOTICE file
distributed with this work for additional information
regarding copyright ownership.  The ASF licenses this file
to you 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

https://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.
-->
<html>
  <head>
    <meta http-equiv="Content-Language" content="en-us"></meta>
    <link rel="stylesheet" type="text/css" href="style.css">
    <title>LogForwarder AntUnit Listener</title>
  </head>

  <body>
    <h2><a name="logforwarder">LogForwarder</a></h2>

    <h3>Description</h3>

    <p>Forwards any log output from the project under test to the
      project running the AntUnit task immediately.  This is different
      from - for example - the plain listener which buffers the
      log output and emits it after the test has finished.</p>

    <p>This listener can be used to debug failing tests more easily or
      monitor tests in real time.</p>
  </body>
</html>
