<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<HTML>
  <HEAD>
    <TITLE>Chainsaw Tool</TITLE>
  </head>
    
  <BODY>

    <P>Chainsaw is a GUI log viewer and filter for the log4j
package. By default it listens for <a
href="../spi/LoggingEvent.html">LoggingEvent</A> objects sent using
the <A href="../net/SocketAppender.html">SocketAppender</A> and
displays them in a table. The events can be filtered based on:</P>

    <UL>
      <LI>Level </li>

      <LI>Thread name</li>

      <LI>Logger</li>
      <LI>Message</li>

      <LI>NDC</LI>
    </UL>

    <P>All the details for each event can be displayed by selecting
      the event in the table.</P> 

    <P>Chainsaw also supports loading a events logged to a file using
      the <A href="../xml/XMLLayout.html">XMLLayout</A> format. This
      is great for analysing log files, and means you do not need to
      keep Chainsaw running continously. It is easy to add support
      for loading events from other sources like JDBC.</P> 

    <P>A picture is worth a thousand words: </P>

    <P align=center><A
      href="doc-files/Chainsawv2.gif"><IMG
      height="50%" alt="Screen shot of chainsaw"
      src="doc-files/Chainsawv2.gif"
      width="50%"></A>.</P> 

    <P>Finally, why is it called chainsaw?
      Because it cuts your log (file) down to size. :-)
    </P>


    <H2>Requirements</H2> 

    <P>Chainsaw is based on the Swing API which requires JDK 1.2 or later, and also relies on the <a href="http://jakarta.apache.org/oro/index.html">Jakarta ORO regular
    expression package</a>.</P>


    <H2>Running chainsaw</H2>

    <H3>Setup</H3>
    <P>You need to include the <code>log4j.jar</code> and the <code>jakarta-oro.jar</code> in the classpath.

    <H3>Usage</H3>

    <P>The command line usage is:</P>

    <PRE>  java -D&lt;property&gt;=&lt;value&gt; org.apache.log4j.chainsaw.LogUI </PRE>

    <H2>Configuring Log4J</H2>

    <P>You will need to configure log4j to send logging events to
      Chainsaw.  There is an example Log4j xml configuration file included with Chainsaw, you can view it inside
      the Chainsaw GUI by clicking on the button in the welcome screen.</P>




  </body>
</html>