avalon-cvs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From dona...@apache.org
Subject cvs commit: jakarta-avalon-site/docs/logkit/images header.gif
Date Wed, 10 Jul 2002 04:18:31 GMT
donaldp     2002/07/09 21:18:31

  Modified:    docs/logkit changes.html features.html index.html
                        whitepaper.html
               docs/logkit/images header.gif
  Added:       docs/logkit/css ns4_only.css print.css site.css tigris.css
  Log:
  Update site
  
  Revision  Changes    Path
  1.7       +447 -388  jakarta-avalon-site/docs/logkit/changes.html
  
  Index: changes.html
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-site/docs/logkit/changes.html,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- changes.html	2 Apr 2002 12:12:35 -0000	1.6
  +++ changes.html	10 Jul 2002 04:18:31 -0000	1.7
  @@ -1,521 +1,580 @@
  -<html>
  -<head>
  -<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  -<title>Revision History</title>
  -</head>
  -<body bgcolor="#ffffff" marginheight="4" marginwidth="4" leftmargin="4" topmargin="4" alink="#023264" vlink="#023264" link="#525D76" text="#000000">
  -<table border="0" cellpadding="0" cellspacing="0" width="100%">
  -<tr>
  -<td align="left" valign="top"><a href="http://jakarta.apache.org/index.html"><img src="images/jakarta-logo.gif" border="0" vspace="0" hspace="0"></a></td><td bgcolor="#ffffff" align="left" valign="top" width="100%"><img src="images/header.gif" align="right" border="0" vspace="0" hspace="0"></td>
  -</tr>
  -<tr>
  -<td colspan="2" height="2" width="100%">
  -<hr size="1" noshade="">
  -</td>
  -</tr>
  -</table>
  -<table border="0" cellpadding="0" cellspacing="0" width="100%">
  -<tr>
  -<td valign="top" width="1%"></td><td nowrap="1" valign="top" width="14%">
  -<br>
  -<font face="arial,helvetica,sanserif">
  -<br>
  -<br>
  -<a href="http://jakarta.apache.org/avalon"><font size="+1" color="#778899">Back to Avalon</font></a>
  -<br>
  -<br>
  -<font size="+1" color="#000000">About</font>
  -<br>
  -<font size="-1">
  -<ul>
  -<li>
  -<a href="index.html"><font size="-1">Overview</font></a>
  -</li>
  -<li>
  -<a href="features.html"><font size="-1">Features</font></a>
  -</li>
  -<li>
  -<a href="http://jakarta.apache.org/builds/jakarta-avalon/release/logkit/latest"><font size="-1">Download</font></a>
  -</li>
  -<li>
  -<a href="whitepaper.html"><font size="-1">Whitepaper</font></a>
  -</li>
  -<li>
  -<a href="changes.html"><font size="-1">Changes</font></a>
  -</li>
  -<li>
  -<a href="http://jakarta.apache.org/avalon/logkit/api/index.html"><font size="-1">API Docs</font></a>
  -</li>
  -</ul>
  -</font>
  -<br>
  -<br>
  -</font></td><td align="left" valign="top" width="*">
  -<title>Revision History</title>
  -<center>
  -<table width="100%">
  -<tr>
  -<td bgcolor="#99aabb">
  -<center>
  -<b><font face="arial,helvetica,sanserif" color="#000000" size="+2">Revision History</font></b>
  -</center>
  -</td>
  -</tr>
  -</table>
  -</center>
  -<br>
  -<div align="right">
  -<table width="100%" cellspacing="0" cellpadding="2" border="0">
  -<tr>
  -<td bgcolor="#525D76"><font face="arial,helvetica,sanserif" color="#ffffff"><b>Revision 1.1 
  -                   ()
  -                </b></font></td>
  -</tr>
  -<tr>
  -<td><font face="arial,helvetica,sanserif" color="#000000">
  -<br>
  -<ul>
  -<li>
  -<img src="images/update.jpg" border="0" alt="changed" align="absmiddle">
  +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +<!-- Content Stylesheet for Site -->
  +
  +    
  +<!-- start the processing -->
  +    <html>
  +    <head>
  +      <style type="text/css">
  +        @import url("./css/tigris.css");
  +        @import url("./css/site.css");
  +      </style>
  +      <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
  +
  +            
  +      <title>LogKit - $root.getChild("properties").getChild("title").getText()</title>
  +    </head>
  +
  +    <body marginwidth="0" marginheight="0" class="composite">
  +
  +      <div id="banner">
  +        <table border="0" cellspacing="0" cellpadding="8" width="100%">
  +          <!-- TOP IMAGE -->
  +          <tr>
  +            <td>      <td align="left">
  +    <a href="http://jakarta.apache.org"><img src="http://jakarta.apache.org/images/jakarta-logo.gif" border="0"/></a>
  +    </td>
  +    <td align="right">
  +              <a href="http://jakarta.apache.org/avalon/logkit"><img src="./images/header.gif" alt="LogKit" border="0"/></a>
  +        </td>
  +  </td>
  +            <td><div align="right" valign="bottom"><b><font size="+3">LogKit</font></b></div></td>
  +          </tr>
  +        </table>
  +      </div>
  +
  +      <table border="0" cellspacing="0" cellpadding="8" width="100%" id="main">
  +        <tr valign="top">
  +          <!-- LEFT SIDE NAVIGATION -->
  +          <td id="leftcol" width="20%">
  +            <div id="navcolumn">
  +                  <div>
  +      <strong>About</strong>
  +              <div><small>      <a href="./index.html">Overview</a>
  +  </small></div>
  +              <div><small>      <a href="./features.html">Features</a>
  +  </small></div>
  +              <div><small>      <a href="http://jakarta.apache.org/builds/jakarta-avalon/release/logkit/latest">Download</a>
  +  </small></div>
  +              <div><small>      <a href="./whitepaper.html">Whitepaper</a>
  +  </small></div>
  +              <div><small>      <a href="./changes.html">Changes</a>
  +  </small></div>
  +              <div><small>      <a href="http://jakarta.apache.org/avalon/logkit/api/index.html">API Docs</a>
  +  </small></div>
  +          </div>
  +              </div>
  +          </td>
  +          <td><div id="bodycol"><div class="app">
  +
  +  <table border="0" cellspacing="0" cellpadding="2" width="100%">
  +    <tr><td bgcolor="#525D76">
  +      <font color="#ffffff" face="arial,helvetica,sanserif">
  +        <strong>ChangeLog</strong>
  +      </font>
  +    </td></tr>
  +    <tr><td>
  +      <blockquote>
  +                      <table border="0" cellspacing="0" cellpadding="2" width="100%">
  +    <tr><td bgcolor="#828DA6">
  +      <font color="#ffffff" face="arial,helvetica,sanserif">
  +        <strong>
  +          Revision 1.1 (Unreleased)
  +        </strong>
  +      </font>
  +    </td></tr>
  +    <tr><td>
  +      <blockquote>
  +        <ul>
  +                <li>  <p>
  +      Added SMTPOutputLogTarget to enable logging to email addresses.
  +     (MC)</p>
  +</li>
  +                <li>  <p>
         Changed the default log format so that the log entry times are formatted
         using a human friendly format.
  -     (LM)</li>
  -<li>
  -<img src="images/update.jpg" border="0" alt="changed" align="absmiddle">
  +     (LM)</p>
  +</li>
  +                <li>  <p>
         Rotate before write.
  -     (EP)</li>
  -<li>
  -<img src="images/add.jpg" border="0" alt="added" align="absmiddle">
  +     (EP)</p>
  +</li>
  +                <li>  <p>
         Added RotateStrategyByDate to enable daily, weekly, and monthly rotation of log files.
  -     (EP)</li>
  -</ul>
  -</font></td>
  -</tr>
  -<tr>
  -<td bgcolor="#525D76"><font face="arial,helvetica,sanserif" color="#ffffff"><b>Revision 1.0.1 
  -                   (January 31, 2001)
  -                </b></font></td>
  -</tr>
  -<tr>
  -<td><font face="arial,helvetica,sanserif" color="#000000">
  -<br>
  -<ul>
  -<li>
  -<img src="images/fix.jpg" border="0" alt="off" align="absmiddle">
  +     (EP)</p>
  +</li>
  +                </ul>
  +      </blockquote>
  +    </td></tr>
  +  </table>
  +  </a>
  +                <table border="0" cellspacing="0" cellpadding="2" width="100%">
  +    <tr><td bgcolor="#828DA6">
  +      <font color="#ffffff" face="arial,helvetica,sanserif">
  +        <strong>
  +          Revision 1.0.1 (January 31, 2001)
  +        </strong>
  +      </font>
  +    </td></tr>
  +    <tr><td>
  +      <blockquote>
  +        <ul>
  +                <li>  <p>
         Fixed spelling in the documentation files.
  -     (PD)</li>
  -<li>
  -<img src="images/fix.jpg" border="0" alt="off" align="absmiddle">
  +     (PD)</p>
  +</li>
  +                <li>  <p>
         Fix javadoc warnings from "@returns" tags used instead of "@return".
  -     (PD)</li>
  -<li>
  -<img src="images/update.jpg" border="0" alt="changed" align="absmiddle">
  +     (PD)</p>
  +</li>
  +                <li>  <p>
         added new constructors to produce better readable file names in the
         File Strategy classes.
  -     (GP)</li>
  -<li>
  -<img src="images/fix.jpg" border="0" alt="off" align="absmiddle">
  +     (GP)</p>
  +</li>
  +                <li>  <p>
         Added fixes to AsyncLogTarget: Make sure that the LogTarget delegated
         to cannot disrupt thread by throwing an exception.  Remove uneeded step
         from documentation.
  -     (PD)</li>
  -<li>
  -<img src="images/update.jpg" border="0" alt="changed" align="absmiddle">
  +     (PD)</p>
  +</li>
  +                <li>  <p>
         Many improvements to PatternFormatter including:  Made it possible to
         specify the format of date in the auxilliary parameter of the format
         for dates.  Cached the date and DateFormatter objects so that they are
         not created every time a LogEvent is formatted.  Added a getRTime()
         method to format relative time. Just delegates to getTime at the
         moment for backwards compatability.
  -     (PD)</li>
  -<li>
  -<img src="images/update.jpg" border="0" alt="changed" align="absmiddle">
  +     (PD)</p>
  +</li>
  +                <li>  <p>
         Made sure that additivity is transitive (in Logger) - even when you
         only inherit your loggers from your parent.
  -     (PD)</li>
  -<li>
  -<img src="images/update.jpg" border="0" alt="changed" align="absmiddle">
  +     (PD)</p>
  +</li>
  +                <li>  <p>
         Added isPriorityEnabled() method to Logger to determine if specified
         priority is enabled.
  -     (PD)</li>
  -<li>
  -<img src="images/update.jpg" border="0" alt="changed" align="absmiddle">
  +     (PD)</p>
  +</li>
  +                <li>  <p>
         Various build improvements.
  -     (LM)</li>
  -</ul>
  -</font></td>
  -</tr>
  -<tr>
  -<td bgcolor="#525D76"><font face="arial,helvetica,sanserif" color="#ffffff"><b>Revision 1.0 
  -                   (October 26, 2001)
  -                </b></font></td>
  -</tr>
  -<tr>
  -<td><font face="arial,helvetica,sanserif" color="#000000">
  -<br>
  -<ul>
  -<li>
  -<img src="images/remove.jpg" border="0" alt="deleted" align="absmiddle">
  +     (LM)</p>
  +</li>
  +                </ul>
  +      </blockquote>
  +    </td></tr>
  +  </table>
  +  </a>
  +                <table border="0" cellspacing="0" cellpadding="2" width="100%">
  +    <tr><td bgcolor="#828DA6">
  +      <font color="#ffffff" face="arial,helvetica,sanserif">
  +        <strong>
  +          Revision 1.0 (October 26, 2001)
  +        </strong>
  +      </font>
  +    </td></tr>
  +    <tr><td>
  +      <blockquote>
  +        <ul>
  +                <li>  <p>
         Remove references to Testlet (since we migrated to JUnit).
  -     (BL)</li>
  -<li>
  -<img src="images/fix.jpg" border="0" alt="off" align="absmiddle">
  +     (BL)</p>
  +</li>
  +                <li>  <p>
         Fixed EOL issues in test so that line formatting works across all
         systems (rather than just unix).
  -     (PD)</li>
  -<li>
  -<img src="images/update.jpg" border="0" alt="changed" align="absmiddle">
  +     (PD)</p>
  +</li>
  +                <li>  <p>
         Added in a clearer javadoc class description in PatternFormatter.
  -     (PD)</li>
  -<li>
  -<img src="images/update.jpg" border="0" alt="changed" align="absmiddle">
  +     (PD)</p>
  +</li>
  +                <li>  <p>
         Made Hierarchy setDefaultLogTargets() which is like
         setDefaultLogTarget() but accepts an array.
  -     (PD)</li>
  -<li>
  -<img src="images/update.jpg" border="0" alt="changed" align="absmiddle">
  +     (PD)</p>
  +</li>
  +                <li>  <p>
         Use default log format when use default constructor in
         AvalonFormatter comaptibility.
  -     (EP)</li>
  -<li>
  -<img src="images/update.jpg" border="0" alt="changed" align="absmiddle">
  +     (EP)</p>
  +</li>
  +                <li>  <p>
         Various build improvements.
  -     (BL)</li>
  -</ul>
  -</font></td>
  -</tr>
  -<tr>
  -<td bgcolor="#525D76"><font face="arial,helvetica,sanserif" color="#ffffff"><b>Revision 1.0b5 
  -                   (September 17, 2001)
  -                </b></font></td>
  -</tr>
  -<tr>
  -<td><font face="arial,helvetica,sanserif" color="#000000">
  -<br>
  -<ul>
  -<li>
  -<img src="images/update.jpg" border="0" alt="changed" align="absmiddle">
  +     (BL)</p>
  +</li>
  +                </ul>
  +      </blockquote>
  +    </td></tr>
  +  </table>
  +  </a>
  +                <table border="0" cellspacing="0" cellpadding="2" width="100%">
  +    <tr><td bgcolor="#828DA6">
  +      <font color="#ffffff" face="arial,helvetica,sanserif">
  +        <strong>
  +          Revision 1.0b5 (September 17, 2001)
  +        </strong>
  +      </font>
  +    </td></tr>
  +    <tr><td>
  +      <blockquote>
  +        <ul>
  +                <li>  <p>
         Updated unit tests to use JUnit rather than Testlet.
  -     (EP)</li>
  -<li>
  -<img src="images/add.jpg" border="0" alt="added" align="absmiddle">
  +     (EP)</p>
  +</li>
  +                <li>  <p>
         Deprecate OutputStreamLogger and replace with LoggerOutputStream.
  -     (PD)</li>
  -<li>
  -<img src="images/add.jpg" border="0" alt="added" align="absmiddle">
  +     (PD)</p>
  +</li>
  +                <li>  <p>
         Added JMS support for JMS Log messages.
  -     (PD)</li>
  -<li>
  -<img src="images/add.jpg" border="0" alt="added" align="absmiddle">
  +     (PD)</p>
  +</li>
  +                <li>  <p>
         Added file rotation strategies, including patches from
         Bernhard Huber and Carsten Ziegeler
  -     (PD)</li>
  -<li>
  -<img src="images/add.jpg" border="0" alt="added" align="absmiddle">
  +     (PD)</p>
  +</li>
  +                <li>  <p>
         Implemented a database log target.
  -     (PD)</li>
  -<li>
  -<img src="images/fix.jpg" border="0" alt="off" align="absmiddle">
  +     (PD)</p>
  +</li>
  +                <li>  <p>
         Used synchronization to make targets more threads safe.
  -     (PD)</li>
  -<li>
  -<img src="images/fix.jpg" border="0" alt="off" align="absmiddle">
  +     (PD)</p>
  +</li>
  +                <li>  <p>
         Fix masquerading attack security hole.
  -     (PD)</li>
  -<li>
  -<img src="images/update.jpg" border="0" alt="changed" align="absmiddle">
  +     (PD)</p>
  +</li>
  +                <li>  <p>
         Incorporate additivity feature similar to Log4j.  This is needed as
         getLogTargets() is deprecated for security reasons (allowed masq)
         and yet this functionality is still needed.  Added unit tests to
         verify it behaves as expected.
  -     (PD)</li>
  -<li>
  -<img src="images/update.jpg" border="0" alt="changed" align="absmiddle">
  +     (PD)</p>
  +</li>
  +                <li>  <p>
         Made LogEvent serializable. The format may change slightly before
         release.
  -     (PD)</li>
  -<li>
  -<img src="images/update.jpg" border="0" alt="changed" align="absmiddle">
  +     (PD)</p>
  +</li>
  +                <li>  <p>
         Passed Hierarchy object as ErrorHandler. Hierarchy delegates to another
         ErrorHandler which allows ErrorHandler to be pluggable without resetting
         all ErrorHandlers each time an ErrorHandler is changed.
  -     (PD)</li>
  -<li>
  -<img src="images/update.jpg" border="0" alt="changed" align="absmiddle">
  +     (PD)</p>
  +</li>
  +                <li>  <p>
         Incorporated delegation of Error Handling to ErrorHandler.
         Logging components receive an ErrorHandler by implementing ErrorAware.
         Added AbstractTarget that provided basic functionality of open/close
         and error handling almost always needed by LogTargets.
         Refactored all existing targets to work with this method.
  -     (PD)</li>
  -<li>
  -<img src="images/update.jpg" border="0" alt="changed" align="absmiddle">
  +     (PD)</p>
  +</li>
  +                <li>  <p>
         Made ContextMap serializable. After deserializing it defaults to readonly.
         This assumes that Context only contains serializable elements.
  -     (PD)</li>
  -<li>
  -<img src="images/update.jpg" border="0" alt="changed" align="absmiddle">
  +     (PD)</p>
  +</li>
  +                <li>  <p>
         Update build process to the proposed standard.
  -     (BL)</li>
  -<li>
  -<img src="images/update.jpg" border="0" alt="changed" align="absmiddle">
  +     (BL)</p>
  +</li>
  +                <li>  <p>
         Update build process to notify the user of missing jars, and perform
         many other checks
  -     (PD)</li>
  -</ul>
  -</font></td>
  -</tr>
  -<tr>
  -<td bgcolor="#525D76"><font face="arial,helvetica,sanserif" color="#ffffff"><b>Revision 1.0b4 
  -                   (August 6, 2001)
  -                </b></font></td>
  -</tr>
  -<tr>
  -<td><font face="arial,helvetica,sanserif" color="#000000">
  -<br>
  -<ul>
  -<li>
  -<img src="images/update.jpg" border="0" alt="changed" align="absmiddle">
  +     (PD)</p>
  +</li>
  +                </ul>
  +      </blockquote>
  +    </td></tr>
  +  </table>
  +  </a>
  +                <table border="0" cellspacing="0" cellpadding="2" width="100%">
  +    <tr><td bgcolor="#828DA6">
  +      <font color="#ffffff" face="arial,helvetica,sanserif">
  +        <strong>
  +          Revision 1.0b4 (August 6, 2001)
  +        </strong>
  +      </font>
  +    </td></tr>
  +    <tr><td>
  +      <blockquote>
  +        <ul>
  +                <li>  <p>
       Added ContextMap, updated whitepaper to describe the feature. Deprecated ContextStack 
       in the process as it encouraged bad practices and has been supersceded by ContextMap.
  -   (PD)</li>
  -<li>
  -<img src="images/add.jpg" border="0" alt="added" align="absmiddle">
  +   (PD)</p>
  +</li>
  +                <li>  <p>
       Added ExtendedPatternFormatter to allow log messages to be formatted with 
       caller method and thread ids.
  -   (PD)</li>
  -<li>
  -<img src="images/update.jpg" border="0" alt="changed" align="absmiddle">
  +   (PD)</p>
  +</li>
  +                <li>  <p>
       Fixed bug in OutputStreamLogger so that it does not append a '\n' at end
       of stream.
  -   (PD)</li>
  -<li>
  -<img src="images/add.jpg" border="0" alt="added" align="absmiddle">
  +   (PD)</p>
  +</li>
  +                <li>  <p>
       Added Target SafeFileTarget that opens file and then closes file each time 
       a log entry is written.
  -   (PD)</li>
  -<li>
  -<img src="images/add.jpg" border="0" alt="added" align="absmiddle">
  +   (PD)</p>
  +</li>
  +                <li>  <p>
       Added basic unit tests for the logkit formatters, stream and file output 
       targets, priority and logTarget inheritance and utility code.
  -   (PD)</li>
  -<li>
  -<img src="images/update.jpg" border="0" alt="changed" align="absmiddle">
  +   (PD)</p>
  +</li>
  +                <li>  <p>
       Rework existing logtargets so that they are thread safe, perform better error
       management and improve usability. Old style targets have been deprecated as
       have any "unsafe" methods.
  -   (PD)</li>
  -<li>
  -<img src="images/update.jpg" border="0" alt="changed" align="absmiddle">
  +   (PD)</p>
  +</li>
  +                <li>  <p>
       Added extra constructor to PatternFormatter so that format string is 
       specified at construction time. Deprecated no arguements constructor
       and setFormat() method.
  -   (PD)</li>
  -<li>
  -<img src="images/add.jpg" border="0" alt="added" align="absmiddle">
  +   (PD)</p>
  +</li>
  +                <li>  <p>
       Added StackIntrospector class that is amalgamation of utility code supplied by
       Stuart Roebuck (stuart.roebuck@adolos.co.uk) and  Sylvain 
       Wallez (sylvain.wallez@anyware-tech.com).
  -   (PD)</li>
  -<li>
  -<img src="images/update.jpg" border="0" alt="changed" align="absmiddle">
  +   (PD)</p>
  +</li>
  +                <li>  <p>
       Right justified fields are cropped on the left. ie [%-20.20{context}] changes from 
       outputting "[org.apache.log.forma]" to "[mat.PatternFormatter]".
  -   (SR)</li>
  -<li>
  -<img src="images/update.jpg" border="0" alt="changed" align="absmiddle">
  +   (SR)</p>
  +</li>
  +                <li>  <p>
       Made Hierarchy.log() deal gracefully with a null exception parameter.
  -   (PD)</li>
  -<li>
  -<img src="images/add.jpg" border="0" alt="added" align="absmiddle">
  +   (PD)</p>
  +</li>
  +                <li>  <p>
       Added stylesheet to convert Stylebook markup to DocBook markup.
  -   (BL)</li>
  -<li>
  -<img src="images/update.jpg" border="0" alt="changed" align="absmiddle">
  +   (BL)</p>
  +</li>
  +                <li>  <p>
       Deprecated AvalonFormatter and created a new Formatter inside Avalon project.
  -   (BL)</li>
  -<li>
  -<img src="images/update.jpg" border="0" alt="changed" align="absmiddle">
  +   (BL)</p>
  +</li>
  +                <li>  <p>
       Changed the documentation build process to use Cocoon to build
       the site.
  -   (BL)</li>
  -<li>
  -<img src="images/update.jpg" border="0" alt="changed" align="absmiddle">
  +   (BL)</p>
  +</li>
  +                <li>  <p>
       Deprecated FilterTarget it was rarely (never?) used and offers only minor 
       advantages over directly using sub-classes.
  -   (PD)</li>
  -<li>
  -<img src="images/add.jpg" border="0" alt="added" align="absmiddle">
  +   (PD)</p>
  +</li>
  +                <li>  <p>
       Added XMLFormatter to enable writing logs in XML format.
  -   (PD)</li>
  -<li>
  -<img src="images/update.jpg" border="0" alt="changed" align="absmiddle">
  +   (PD)</p>
  +</li>
  +                <li>  <p>
       Made priority serializable.
  -   (PD)</li>
  -</ul>
  -</font></td>
  -</tr>
  -<tr>
  -<td bgcolor="#525D76"><font face="arial,helvetica,sanserif" color="#ffffff"><b>Revision 1.0b3 
  -                   (July 22, 2001)
  -                </b></font></td>
  -</tr>
  -<tr>
  -<td><font face="arial,helvetica,sanserif" color="#000000">
  -<br>
  -<ul>
  -<li>
  -<img src="images/update.jpg" border="0" alt="changed" align="absmiddle">
  +   (PD)</p>
  +</li>
  +                </ul>
  +      </blockquote>
  +    </td></tr>
  +  </table>
  +  </a>
  +                <table border="0" cellspacing="0" cellpadding="2" width="100%">
  +    <tr><td bgcolor="#828DA6">
  +      <font color="#ffffff" face="arial,helvetica,sanserif">
  +        <strong>
  +          Revision 1.0b3 (July 22, 2001)
  +        </strong>
  +      </font>
  +    </td></tr>
  +    <tr><td>
  +      <blockquote>
  +        <ul>
  +                <li>  <p>
       Added setPriority() method to Priority filter to allow modification of 
       filter properties at runtime.
  -   (PD)</li>
  -<li>
  -<img src="images/update.jpg" border="0" alt="changed" align="absmiddle">
  +   (PD)</p>
  +</li>
  +                <li>  <p>
       Deprecated Logger.getCategory as it violates the Inversion Of Control principle.
  -   (PD)</li>
  -<li>
  -<img src="images/update.jpg" border="0" alt="changed" align="absmiddle">
  +   (PD)</p>
  +</li>
  +                <li>  <p>
       Enhanced FileOutputLogTarget to enable it to be used to append to a file, rather than overwrite.
  -   (PD)</li>
  -</ul>
  -</font></td>
  -</tr>
  -<tr>
  -<td bgcolor="#525D76"><font face="arial,helvetica,sanserif" color="#ffffff"><b>Revision 1.0b2 
  -                   (June 4, 2001)
  -                </b></font></td>
  -</tr>
  -<tr>
  -<td><font face="arial,helvetica,sanserif" color="#000000">
  -<br>
  -<ul>
  -<li>
  -<img src="images/add.jpg" border="0" alt="added" align="absmiddle">
  +   (PD)</p>
  +</li>
  +                </ul>
  +      </blockquote>
  +    </td></tr>
  +  </table>
  +  </a>
  +                <table border="0" cellspacing="0" cellpadding="2" width="100%">
  +    <tr><td bgcolor="#828DA6">
  +      <font color="#ffffff" face="arial,helvetica,sanserif">
  +        <strong>
  +          Revision 1.0b2 (June 4, 2001)
  +        </strong>
  +      </font>
  +    </td></tr>
  +    <tr><td>
  +      <blockquote>
  +        <ul>
  +                <li>  <p>
       Beta 2 release.
  -   (BL)</li>
  -<li>
  -<img src="images/update.jpg" border="0" alt="changed" align="absmiddle">
  +   (BL)</p>
  +</li>
  +                <li>  <p>
       Update documentation so that you can get started easily.
  -   (PD)</li>
  -<li>
  -<img src="images/fix.jpg" border="0" alt="off" align="absmiddle">
  +   (PD)</p>
  +</li>
  +                <li>  <p>
       Fixed logical error in PriorityFilter.  The code _used_ to allow
       anything up to a priority level (i.e. if priority was set to
       ERROR, then it would allow DEBUG, INFO, and WARN).  Now it
       operates correctly (i.e. if priority was set to ERROR, then
       it will allow ERROR and FATAL_ERROR).
  -   (BL)</li>
  -</ul>
  -</font></td>
  -</tr>
  -<tr>
  -<td bgcolor="#525D76"><font face="arial,helvetica,sanserif" color="#ffffff"><b>Revision 1.0b1 
  -                   (May 11, 2001)
  -                </b></font></td>
  -</tr>
  -<tr>
  -<td><font face="arial,helvetica,sanserif" color="#000000">
  -<br>
  -<ul>
  -<li>
  -<img src="images/add.jpg" border="0" alt="added" align="absmiddle">First public release. (PD)</li>
  -<li>
  -<img src="images/update.jpg" border="0" alt="changed" align="absmiddle">
  +   (BL)</p>
  +</li>
  +                </ul>
  +      </blockquote>
  +    </td></tr>
  +  </table>
  +  </a>
  +                <table border="0" cellspacing="0" cellpadding="2" width="100%">
  +    <tr><td bgcolor="#828DA6">
  +      <font color="#ffffff" face="arial,helvetica,sanserif">
  +        <strong>
  +          Revision 1.0b1 (May 11, 2001)
  +        </strong>
  +      </font>
  +    </td></tr>
  +    <tr><td>
  +      <blockquote>
  +        <ul>
  +                <li>  <p>First public release. (PD)</p>
  +</li>
  +                <li>  <p>
     Renamed LogEntry to LogEvent. This was done as Entry was a misnomer.
     It was a misnomer as each Entry could in fact never be placed in
     logs or placed in multiple logs. It is up to the LogTargets how to 
     treat the event and whether or not to convert the event into an entry.
     Updated all interfaces that referred to entry to refer to event.
  -   (PD)</li>
  -<li>
  -<img src="images/add.jpg" border="0" alt="added" align="absmiddle">
  +   (PD)</p>
  +</li>
  +                <li>  <p>
     Added getCurrentContextStack() to ContextStack class and made the
     method with same name in LogKit delegate to ContextStack.getCurrentContextStack()
  -   (PD)</li>
  -<li>
  -<img src="images/add.jpg" border="0" alt="added" align="absmiddle">
  +   (PD)</p>
  +</li>
  +                <li>  <p>
     Added getDefaultLogEngine() to LogEngine and made the method with same name
     in LogKit delegate to LogEngine.getDefaultLogEngine()
  -   (PD)</li>
  -<li>
  -<img src="images/update.jpg" border="0" alt="changed" align="absmiddle">
  +   (PD)</p>
  +</li>
  +                <li>  <p>
     Made Priority a class in place of Priority.Enum class. Converted constants
     to use this interface. Added getPriorityForName() method and made LogKit
     method of same name delegate to it.
  -   (PD)</li>
  -<li>
  -<img src="images/update.jpg" border="0" alt="changed" align="absmiddle">
  +   (PD)</p>
  +</li>
  +                <li>  <p>
     Made ContextStack contain objects other than strings.
  -   (PD)</li>
  -<li>
  -<img src="images/update.jpg" border="0" alt="changed" align="absmiddle">
  +   (PD)</p>
  +</li>
  +                <li>  <p>
     Made each hierarchy extend from a root Logger about category "". Also put
     default log target into this Logger. Thus no longer *need* getDefaultLogTarget
     method in LogEngine/LogKit - thus it was removed.
  -   (PD)</li>
  -<li>
  -<img src="images/update.jpg" border="0" alt="changed" align="absmiddle">
  +   (PD)</p>
  +</li>
  +                <li>  <p>
     Made each logger cache a version of logTargets. Combine this with the root logger
     containing default log target means that you no longer have to recursively
     check parents to get LogTargets or check the engine. This is considerably 
     faster.
  -   (PD)</li>
  -<li>
  -<img src="images/update.jpg" border="0" alt="changed" align="absmiddle">
  +   (PD)</p>
  +</li>
  +                <li>  <p>
     Made "category" behave identically to logTarget inheritance wise.
     Each logger caches priority when it is inherited from parents. This is
     slightly faster than old version.
  -   (PD)</li>
  -<li>
  -<img src="images/remove.jpg" border="0" alt="deleted" align="absmiddle">
  +   (PD)</p>
  +</li>
  +                <li>  <p>
     Merged "Category" object into Logger. This required adding getPriority to 
     Logger and making Logger.getCategory() return name of category rather than
     Category object.
  -   (PD)</li>
  -<li>
  -<img src="images/fix.jpg" border="0" alt="off" align="absmiddle">
  +   (PD)</p>
  +</li>
  +                <li>  <p>
     Protected logger manipulation by synchronized sections
  -   (PD)</li>
  -<li>
  -<img src="images/update.jpg" border="0" alt="changed" align="absmiddle">
  +   (PD)</p>
  +</li>
  +                <li>  <p>
     Made ServletOutputTarget not filter - leave that to a separate FilterTarget
  -   (PD)</li>
  -<li>
  -<img src="images/update.jpg" border="0" alt="changed" align="absmiddle">
  +   (PD)</p>
  +</li>
  +                <li>  <p>
     Moved instance variables to private instead of protected were appopriate.
     This allows to decrease maintanence cost just in case someone inherits
     from one of our classes.
  -   (PD)</li>
  -<li>
  -<img src="images/remove.jpg" border="0" alt="deleted" align="absmiddle">
  +   (PD)</p>
  +</li>
  +                <li>  <p>
     Removed the hashtable that stored log targets as it can be easily done
     by users of LogKit and wasn't serving any real purpose.
  -   (PD)</li>
  -<li>
  -<img src="images/update.jpg" border="0" alt="changed" align="absmiddle">
  +   (PD)</p>
  +</li>
  +                <li>  <p>
     Renamed LogEngine to Hierarchy to match Log4j and allow easy cross migration
  -   (PD)</li>
  -</ul>
  -</font></td>
  -</tr>
  -</table>
  -</div>
  -</td>
  -</tr>
  -</table>
  -<br>
  -<table cellpadding="0" cellspacing="0" border="0" width="100%">
  -<tr>
  -<td>
  -<hr size="1" noshade="">
  -</td>
  -</tr>
  -<tr>
  -<td align="center"><font color="#525D76" size="-1" face="arial,helvetica,sanserif"><i>
  -              Copyright &copy;1999-2002 by the Apache Software Foundation.
  -              All Rights Reserved.
  -            </i></font></td>
  -</tr>
  -</table>
  -</body>
  -</html>
  +   (PD)</p>
  +</li>
  +                </ul>
  +      </blockquote>
  +    </td></tr>
  +  </table>
  +  </a>
  +            </blockquote>
  +    </td></tr>
  +  </table>
  +            </div>
  +		<div align="right" id="authors">
  +			</div>
  +          </div></td>
  +        </tr>
  +      </table>
  +
  +      <!-- FOOTER -->
  +      <div id="footer">
  +        <table border="0" cellspacing="0" cellpadding="4">
  +          <tr>
  +            <td>Copyright &#169; 1999-2002, Apache Software Foundation</td>
  +          </tr>
  +        </table>
  +      </div>
  +
  +    </body>
  +  </html>
  +
  +<!-- end the processing -->
  +
  +
  +
  
  
  
  1.7       +193 -135  jakarta-avalon-site/docs/logkit/features.html
  
  Index: features.html
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-site/docs/logkit/features.html,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- features.html	2 Apr 2002 17:21:18 -0000	1.6
  +++ features.html	10 Jul 2002 04:18:31 -0000	1.7
  @@ -1,168 +1,226 @@
  -<html>
  -<head>
  -<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  -<title>Logkit - Features</title>
  -</head>
  -<body bgcolor="#ffffff" marginheight="4" marginwidth="4" leftmargin="4" topmargin="4" alink="#023264" vlink="#023264" link="#525D76" text="#000000">
  -<table border="0" cellpadding="0" cellspacing="0" width="100%">
  -<tr>
  -<td align="left" valign="top"><a href="http://jakarta.apache.org/index.html"><img src="images/jakarta-logo.gif" border="0" vspace="0" hspace="0"></a></td><td bgcolor="#ffffff" align="left" valign="top" width="100%"><img src="images/header.gif" align="right" border="0" vspace="0" hspace="0"></td>
  -</tr>
  -<tr>
  -<td colspan="2" height="2" width="100%">
  -<hr size="1" noshade="">
  -</td>
  -</tr>
  -</table>
  -<table border="0" cellpadding="0" cellspacing="0" width="100%">
  -<tr>
  -<td valign="top" width="1%"></td><td nowrap="1" valign="top" width="14%">
  -<br>
  -<font face="arial,helvetica,sanserif">
  -<br>
  -<br>
  -<a href="http://jakarta.apache.org/avalon"><font size="+1" color="#778899">Back to Avalon</font></a>
  -<br>
  -<br>
  -<font size="+1" color="#000000">About</font>
  -<br>
  -<font size="-1">
  -<ul>
  -<li>
  -<a href="index.html"><font size="-1">Overview</font></a>
  -</li>
  -<li>
  -<a href="features.html"><font size="-1">Features</font></a>
  -</li>
  -<li>
  -<a href="http://jakarta.apache.org/builds/jakarta-avalon/release/logkit/latest"><font size="-1">Download</font></a>
  -</li>
  -<li>
  -<a href="whitepaper.html"><font size="-1">Whitepaper</font></a>
  -</li>
  -<li>
  -<a href="changes.html"><font size="-1">Changes</font></a>
  -</li>
  -<li>
  -<a href="http://jakarta.apache.org/avalon/logkit/api/index.html"><font size="-1">API Docs</font></a>
  -</li>
  -</ul>
  -</font>
  -<br>
  -<br>
  -</font></td><td align="left" valign="top" width="*">
  -<title>Logkit - Features</title>
  -<center>
  -<table width="100%">
  -<tr>
  -<td bgcolor="#99aabb">
  -<center>
  -<b><font face="arial,helvetica,sanserif" color="#000000" size="+2">Logkit - Features</font></b>
  -</center>
  -</td>
  -</tr>
  -</table>
  -</center>
  -<br>
  -<font size="-2" face="arial,helvetica,sanserif" color="#000000">
  -<p>by <a href="mailto:peter@apache.org">Peter Donald</a>
  -</p>
  -</font><font face="arial,helvetica,sanserif" color="#000000"></font>
  -<br>
  -<div align="right">
  -<table cellspacing="0" cellpadding="2" border="0" width="100%">
  -<tr>
  -<td bgcolor="bbccdd"><font face="arial,helvetica,sanserif" color="#000000" size="+1"><b>Features</b></font></td>
  -</tr>
  -<tr>
  -<td><font face="arial,helvetica,sanserif" color="#000000">
  -<br>
  -  
  -<p align="justify">
  -    
  -<em>This document is under construction!</em>
  -<p align="justify"></p>
  +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +<!-- This is a generated file.  Do not edit. -->
  +    <html>
  +    <head>
  +      <style type="text/css">
  +        @import url("./css/tigris.css");
  +        @import url("./css/site.css");
  +      </style>
  +      <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
  +
  +                      <meta name="author" value="Peter Donald">
  +  <meta name="email" value="peter@apache.org">
  +      
  +      <title>LogKit - Logkit - Features</title>
  +    </head>
  +
  +    <body marginwidth="0" marginheight="0" class="composite">
  +
  +      <div id="banner">
  +        <table border="0" cellspacing="0" cellpadding="8" width="100%">
  +          <!-- TOP IMAGE -->
  +          <tr>
  +            <td>      <td align="left">
  +    <a href="http://jakarta.apache.org"><img src="http://jakarta.apache.org/images/jakarta-logo.gif" border="0"/></a>
  +    </td>
  +    <td align="right">
  +              <a href="http://jakarta.apache.org/avalon/logkit"><img src="./images/header.gif" alt="LogKit" border="0"/></a>
  +        </td>
  +  </td>
  +            <td><div align="right" valign="bottom"><b><font size="+3">LogKit</font></b></div></td>
  +          </tr>
  +        </table>
  +      </div>
  +
  +      <table border="0" cellspacing="0" cellpadding="8" width="100%" id="main">
  +        <tr valign="top">
  +          <!-- LEFT SIDE NAVIGATION -->
  +          <td id="leftcol" width="20%">
  +            <div id="navcolumn">
  +                  <div>
  +      <strong>About</strong>
  +              <div><small>      <a href="./index.html">Overview</a>
  +  </small></div>
  +              <div><small>      <a href="./features.html">Features</a>
  +  </small></div>
  +              <div><small>      <a href="http://jakarta.apache.org/builds/jakarta-avalon/release/logkit/latest">Download</a>
  +  </small></div>
  +              <div><small>      <a href="./whitepaper.html">Whitepaper</a>
  +  </small></div>
  +              <div><small>      <a href="./changes.html">Changes</a>
  +  </small></div>
  +              <div><small>      <a href="http://jakarta.apache.org/avalon/logkit/api/index.html">API Docs</a>
  +  </small></div>
  +          </div>
  +              </div>
  +          </td>
  +          <td><div id="bodycol"><div class="app">
  +()
  +          <div class="h3">
  +            <h3><a name="Features">Features</a></h3>
  +                        <p
  +        >                    
  +    
  +                              <strong
  +        >      This document is under construction!
  +  </strong>
  +                                <br
  +        >      
  +  </br>
  +                          
       The LogKit provides the following features:
  -  </p>
     
  -<ul>
  +            </p>
  +                                <ul
  +        >                    
       
  -<li>
  +                              <li
  +        >      
         Decouples LogEvent generation from LogEvent handling.
  -    </li>
       
  -<li>
  +  </li>
  +                          
  +    
  +                              <li
  +        >      
         Is simple to use and simple to configure.
  -    </li>
       
  -<li>
  +  </li>
  +                          
  +    
  +                              <li
  +        >      
         Designed with security in mind.
  -    </li>
       
  -<li>
  +  </li>
  +                          
  +    
  +                              <li
  +        >      
         Allow users fine control of logging based on priority and/or category.
  -    </li>
       
  -<li>
  +  </li>
  +                          
  +    
  +                              <li
  +        >      
         Has hierarchical logging namespace to enable inheritance of LogTargets and
         Priorities.
  -    </li>
       
  -<li>
  +  </li>
  +                          
  +    
  +                              <li
  +        >      
         Lightweight.
  -    </li>
       
  -<li>
  +  </li>
  +                          
  +    
  +                              <li
  +        >      
         Designed to be integrated into existing products.
  -    </li>
       
  -<li>
  +  </li>
  +                          
  +    
  +                              <li
  +        >      
         Performance oriented.
  -    </li>
       
  -<li>
  +  </li>
  +                          
  +    
  +                              <li
  +        >      
         Enables users to plug in filters to filter out or modify LogEvents
         before they are written out.
  -    </li>
       
  -<li>
  +  </li>
  +                          
  +    
  +                              <li
  +        >      
         Allow users to specify the serialization format of LogEvents via 
         Formatters.
  -    </li>
       
  -<li>
  +  </li>
  +                          
  +    
  +                              <li
  +        >      
         Comes with a number of existing LogTargets to ease integration.
  -    </li>
       
  -<li>
  +  </li>
  +                          
  +    
  +                              <li
  +        >      
         The LogKit has existed for a number years and been used in a number of 
         different environments which demonstrates it's reliability and stability.
  -    </li>
  +    
  +  </li>
  +                          
     
  -</ul>
  +            </ul>
  +              </div>
  +              </div>
  +		<div align="right" id="authors">
  +		 by   <a href="peter@apache.org">Peter Donald</a>
  +		</div>
  +          </div></td>
  +        </tr>
  +      </table>
   
  +      <!-- FOOTER -->
  +      <div id="footer">
  +        <table border="0" cellspacing="0" cellpadding="4">
  +          <tr>
  +            <td>Copyright &#169; 1999-2002, Apache Software Foundation</td>
  +          </tr>
  +        </table>
  +      </div>
   
  -</font></td>
  -</tr>
  -</table>
  -</div>
  -<br>
  -</td>
  -</tr>
  -</table>
  -<br>
  -<table cellpadding="0" cellspacing="0" border="0" width="100%">
  -<tr>
  -<td>
  -<hr size="1" noshade="">
  -</td>
  -</tr>
  -<tr>
  -<td align="center"><font color="#525D76" size="-1" face="arial,helvetica,sanserif"><i>
  -              Copyright &copy;1999-2002 by the Apache Software Foundation.
  -              All Rights Reserved.
  -            </i></font></td>
  -</tr>
  -</table>
  -</body>
  -</html>
  +    </body>
  +  </html>
  +()
  
  
  
  1.7       +140 -108  jakarta-avalon-site/docs/logkit/index.html
  
  Index: index.html
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-site/docs/logkit/index.html,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- index.html	2 Apr 2002 17:21:18 -0000	1.6
  +++ index.html	10 Jul 2002 04:18:31 -0000	1.7
  @@ -1,111 +1,143 @@
  -<html>
  -<head>
  -<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  -<title>LogKit - Introduction</title>
  -</head>
  -<body bgcolor="#ffffff" marginheight="4" marginwidth="4" leftmargin="4" topmargin="4" alink="#023264" vlink="#023264" link="#525D76" text="#000000">
  -<table border="0" cellpadding="0" cellspacing="0" width="100%">
  -<tr>
  -<td align="left" valign="top"><a href="http://jakarta.apache.org/index.html"><img src="images/jakarta-logo.gif" border="0" vspace="0" hspace="0"></a></td><td bgcolor="#ffffff" align="left" valign="top" width="100%"><img src="images/header.gif" align="right" border="0" vspace="0" hspace="0"></td>
  -</tr>
  -<tr>
  -<td colspan="2" height="2" width="100%">
  -<hr size="1" noshade="">
  -</td>
  -</tr>
  -</table>
  -<table border="0" cellpadding="0" cellspacing="0" width="100%">
  -<tr>
  -<td valign="top" width="1%"></td><td nowrap="1" valign="top" width="14%">
  -<br>
  -<font face="arial,helvetica,sanserif">
  -<br>
  -<br>
  -<a href="http://jakarta.apache.org/avalon"><font size="+1" color="#778899">Back to Avalon</font></a>
  -<br>
  -<br>
  -<font size="+1" color="#000000">About</font>
  -<br>
  -<font size="-1">
  -<ul>
  -<li>
  -<a href="index.html"><font size="-1">Overview</font></a>
  -</li>
  -<li>
  -<a href="features.html"><font size="-1">Features</font></a>
  -</li>
  -<li>
  -<a href="http://jakarta.apache.org/builds/jakarta-avalon/release/logkit/latest"><font size="-1">Download</font></a>
  -</li>
  -<li>
  -<a href="whitepaper.html"><font size="-1">Whitepaper</font></a>
  -</li>
  -<li>
  -<a href="changes.html"><font size="-1">Changes</font></a>
  -</li>
  -<li>
  -<a href="http://jakarta.apache.org/avalon/logkit/api/index.html"><font size="-1">API Docs</font></a>
  -</li>
  -</ul>
  -</font>
  -<br>
  -<br>
  -</font></td><td align="left" valign="top" width="*">
  -<title>LogKit - Introduction</title>
  -<center>
  -<table width="100%">
  -<tr>
  -<td bgcolor="#99aabb">
  -<center>
  -<b><font face="arial,helvetica,sanserif" color="#000000" size="+2">LogKit - Introduction</font></b>
  -</center>
  -</td>
  -</tr>
  -</table>
  -</center>
  -<br>
  -<font size="-2" face="arial,helvetica,sanserif" color="#000000">
  -<p>by <a href="mailto:avalon-dev@jakarta.apache.org">Avalon Documentation Team</a>
  -</p>
  -</font><font face="arial,helvetica,sanserif" color="#000000"></font>
  -<br>
  -<div align="right">
  -<table cellspacing="0" cellpadding="2" border="0" width="100%">
  -<tr>
  -<td bgcolor="bbccdd"><font face="arial,helvetica,sanserif" color="#000000" size="+1"><b>Introduction</b></font></td>
  -</tr>
  -<tr>
  -<td><font face="arial,helvetica,sanserif" color="#000000">
  -<br>
  +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +<!-- This is a generated file.  Do not edit. -->
  +    <html>
  +    <head>
  +      <style type="text/css">
  +        @import url("./css/tigris.css");
  +        @import url("./css/site.css");
  +      </style>
  +      <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
  +
  +                      <meta name="author" value="Avalon Documentation Team">
  +  <meta name="email" value="avalon-dev@jakarta.apache.org">
         
  -<p align="justify">
  +      <title>LogKit - LogKit - Introduction</title>
  +    </head>
  +
  +    <body marginwidth="0" marginheight="0" class="composite">
  +
  +      <div id="banner">
  +        <table border="0" cellspacing="0" cellpadding="8" width="100%">
  +          <!-- TOP IMAGE -->
  +          <tr>
  +            <td>      <td align="left">
  +    <a href="http://jakarta.apache.org"><img src="http://jakarta.apache.org/images/jakarta-logo.gif" border="0"/></a>
  +    </td>
  +    <td align="right">
  +              <a href="http://jakarta.apache.org/avalon/logkit"><img src="./images/header.gif" alt="LogKit" border="0"/></a>
  +        </td>
  +  </td>
  +            <td><div align="right" valign="bottom"><b><font size="+3">LogKit</font></b></div></td>
  +          </tr>
  +        </table>
  +      </div>
  +
  +      <table border="0" cellspacing="0" cellpadding="8" width="100%" id="main">
  +        <tr valign="top">
  +          <!-- LEFT SIDE NAVIGATION -->
  +          <td id="leftcol" width="20%">
  +            <div id="navcolumn">
  +                  <div>
  +      <strong>About</strong>
  +              <div><small>      <a href="./index.html">Overview</a>
  +  </small></div>
  +              <div><small>      <a href="./features.html">Features</a>
  +  </small></div>
  +              <div><small>      <a href="http://jakarta.apache.org/builds/jakarta-avalon/release/logkit/latest">Download</a>
  +  </small></div>
  +              <div><small>      <a href="./whitepaper.html">Whitepaper</a>
  +  </small></div>
  +              <div><small>      <a href="./changes.html">Changes</a>
  +  </small></div>
  +              <div><small>      <a href="http://jakarta.apache.org/avalon/logkit/api/index.html">API Docs</a>
  +  </small></div>
  +          </div>
  +              </div>
  +          </td>
  +          <td><div id="bodycol"><div class="app">
  +        <div class="h3">
  +            <h3><a name="Introduction">Introduction</a></h3>
  +                        <p
  +        >                    
           LogKit is a logging toolkit designed for secure performance oriented logging
           in applications. To get started using LogKit, it is recomended that you read the 
  -        <a href="whitepaper.html">whitepaper</a> and browse the 
  -        <a href="http://jakarta.apache.org/avalon/logkit/api/index.html">API docs</a>.
  -      </p>
  -    
  -</font></td>
  -</tr>
  -</table>
  -</div>
  -<br>
  -</td>
  -</tr>
  -</table>
  -<br>
  -<table cellpadding="0" cellspacing="0" border="0" width="100%">
  -<tr>
  -<td>
  -<hr size="1" noshade="">
  -</td>
  -</tr>
  -<tr>
  -<td align="center"><font color="#525D76" size="-1" face="arial,helvetica,sanserif"><i>
  -              Copyright &copy;1999-2002 by the Apache Software Foundation.
  -              All Rights Reserved.
  -            </i></font></td>
  -</tr>
  -</table>
  -</body>
  -</html>
  +        
  +                              <link
  +          href="whitepaper.html"
  +          type="simple"
  +          show="replace"
  +          actuate="user"
  +        >      whitepaper
  +  </link>
  +                           and browse the 
  +        
  +                              <link
  +          href="http://jakarta.apache.org/avalon/logkit/api/index.html"
  +          type="simple"
  +          show="replace"
  +          actuate="user"
  +        >      API docs
  +  </link>
  +                          .
  +      
  +            </p>
  +              </div>
  +              </div>
  +		<div align="right" id="authors">
  +		 by   <a href="avalon-dev@jakarta.apache.org">Avalon Documentation Team</a>
  +		</div>
  +          </div></td>
  +        </tr>
  +      </table>
  +
  +      <!-- FOOTER -->
  +      <div id="footer">
  +        <table border="0" cellspacing="0" cellpadding="4">
  +          <tr>
  +            <td>Copyright &#169; 1999-2002, Apache Software Foundation</td>
  +          </tr>
  +        </table>
  +      </div>
  +
  +    </body>
  +  </html>
  
  
  
  1.7       +382 -523  jakarta-avalon-site/docs/logkit/whitepaper.html
  
  Index: whitepaper.html
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-site/docs/logkit/whitepaper.html,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- whitepaper.html	2 Apr 2002 17:21:18 -0000	1.6
  +++ whitepaper.html	10 Jul 2002 04:18:31 -0000	1.7
  @@ -1,169 +1,156 @@
  -<html>
  -<head>
  -<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  -<title>LogKit - Whitepaper</title>
  -</head>
  -<body bgcolor="#ffffff" marginheight="4" marginwidth="4" leftmargin="4" topmargin="4" alink="#023264" vlink="#023264" link="#525D76" text="#000000">
  -<table border="0" cellpadding="0" cellspacing="0" width="100%">
  -<tr>
  -<td align="left" valign="top"><a href="http://jakarta.apache.org/index.html"><img src="images/jakarta-logo.gif" border="0" vspace="0" hspace="0"></a></td><td bgcolor="#ffffff" align="left" valign="top" width="100%"><img src="images/header.gif" align="right" border="0" vspace="0" hspace="0"></td>
  -</tr>
  -<tr>
  -<td colspan="2" height="2" width="100%">
  -<hr size="1" noshade="">
  -</td>
  -</tr>
  -</table>
  -<table border="0" cellpadding="0" cellspacing="0" width="100%">
  -<tr>
  -<td valign="top" width="1%"></td><td nowrap="1" valign="top" width="14%">
  -<br>
  -<font face="arial,helvetica,sanserif">
  -<br>
  -<br>
  -<a href="http://jakarta.apache.org/avalon"><font size="+1" color="#778899">Back to Avalon</font></a>
  -<br>
  -<br>
  -<font size="+1" color="#000000">About</font>
  -<br>
  -<font size="-1">
  -<ul>
  -<li>
  -<a href="index.html"><font size="-1">Overview</font></a>
  -</li>
  -<li>
  -<a href="features.html"><font size="-1">Features</font></a>
  -</li>
  -<li>
  -<a href="http://jakarta.apache.org/builds/jakarta-avalon/release/logkit/latest"><font size="-1">Download</font></a>
  -</li>
  -<li>
  -<a href="whitepaper.html"><font size="-1">Whitepaper</font></a>
  -</li>
  -<li>
  -<a href="changes.html"><font size="-1">Changes</font></a>
  -</li>
  -<li>
  -<a href="http://jakarta.apache.org/avalon/logkit/api/index.html"><font size="-1">API Docs</font></a>
  -</li>
  -</ul>
  -</font>
  -<br>
  -<br>
  -</font></td><td align="left" valign="top" width="*">
  -<title>LogKit - Whitepaper</title>
  -<center>
  -<table width="100%">
  -<tr>
  -<td bgcolor="#99aabb">
  -<center>
  -<b><font face="arial,helvetica,sanserif" color="#000000" size="+2">LogKit - Whitepaper</font></b>
  -</center>
  -</td>
  -</tr>
  -</table>
  -</center>
  -<br>
  -<font size="-2" face="arial,helvetica,sanserif" color="#000000">
  -<p>by <a href="mailto:peter@apache.org">Peter Donald</a>
  -</p>
  -</font><font face="arial,helvetica,sanserif" color="#000000"></font>
  -<br>
  -<div align="right">
  -<table cellspacing="0" cellpadding="2" border="0" width="100%">
  -<tr>
  -<td bgcolor="bbccdd"><font face="arial,helvetica,sanserif" color="#000000" size="+1"><b>Abstract</b></font></td>
  -</tr>
  -<tr>
  -<td><font face="arial,helvetica,sanserif" color="#000000">
  -<br>
  +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +
  +<!-- This is a generated file.  Do not edit. -->
  +    <html>
  +    <head>
  +      <style type="text/css">
  +        @import url("./css/tigris.css");
  +        @import url("./css/site.css");
  +      </style>
  +      <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
  +
  +                      <meta name="author" value="Peter Donald">
  +  <meta name="email" value="peter@apache.org">
         
  -<p align="justify">
  +      <title>LogKit - LogKit - Whitepaper</title>
  +    </head>
  +
  +    <body marginwidth="0" marginheight="0" class="composite">
  +
  +      <div id="banner">
  +        <table border="0" cellspacing="0" cellpadding="8" width="100%">
  +          <!-- TOP IMAGE -->
  +          <tr>
  +            <td>      <td align="left">
  +    <a href="http://jakarta.apache.org"><img src="http://jakarta.apache.org/images/jakarta-logo.gif" border="0"/></a>
  +    </td>
  +    <td align="right">
  +              <a href="http://jakarta.apache.org/avalon/logkit"><img src="./images/header.gif" alt="LogKit" border="0"/></a>
  +        </td>
  +  </td>
  +            <td><div align="right" valign="bottom"><b><font size="+3">LogKit</font></b></div></td>
  +          </tr>
  +        </table>
  +      </div>
  +
  +      <table border="0" cellspacing="0" cellpadding="8" width="100%" id="main">
  +        <tr valign="top">
  +          <!-- LEFT SIDE NAVIGATION -->
  +          <td id="leftcol" width="20%">
  +            <div id="navcolumn">
  +                  <div>
  +      <strong>About</strong>
  +              <div><small>      <a href="./index.html">Overview</a>
  +  </small></div>
  +              <div><small>      <a href="./features.html">Features</a>
  +  </small></div>
  +              <div><small>      <a href="http://jakarta.apache.org/builds/jakarta-avalon/release/logkit/latest">Download</a>
  +  </small></div>
  +              <div><small>      <a href="./whitepaper.html">Whitepaper</a>
  +  </small></div>
  +              <div><small>      <a href="./changes.html">Changes</a>
  +  </small></div>
  +              <div><small>      <a href="http://jakarta.apache.org/avalon/logkit/api/index.html">API Docs</a>
  +  </small></div>
  +          </div>
  +              </div>
  +          </td>
  +          <td><div id="bodycol"><div class="app">
  +        <div class="h3">
  +            <h3><a name="Abstract">Abstract</a></h3>
  +                        <p
  +        >      
           Logging is an integral component to any software development project. 
           During the development stages it offers a valuable source of debugging
           information for the developer. During deployment it can provide valuable
           operational data that allows administrators to diagnose problems as they 
           arise. This whitepaper describes the design and implementation of LogKit.
  -      </p>
  -    
  -</font></td>
  -</tr>
  -</table>
  -</div>
  -<br>
  -<div align="right">
  -<table cellspacing="0" cellpadding="2" border="0" width="100%">
  -<tr>
  -<td bgcolor="bbccdd"><font face="arial,helvetica,sanserif" color="#000000" size="+1"><b>Introduction</b></font></td>
  -</tr>
  -<tr>
  -<td><font face="arial,helvetica,sanserif" color="#000000">
  -<br>
  -
         
  -<p align="justify">
  +  </p>
  +              </div>
  +        <div class="h3">
  +            <h3><a name="Introduction">Introduction</a></h3>
  +                        <p
  +        >      
           LogKit, began life as a facade for a more complex logging toolkit. During
           development it was found that existing toolkits were complex and difficult 
           to use. A malformed logger configuration file could cause the whole system 
           to fail or the logging information to go into the void.
  -      </p>
  -
         
  -<p align="justify">
  +  </p>
  +                                <p
  +        >      
           Over time it was discovered that the facade, while simple to use, inherited 
           many of the faults of the underlying logging toolkit. The logging was slow
           and was impossible to dynamically reconfigure. 
  -      </p>        
  -        
         
  -<p align="justify">
  +  </p>
  +                                <p
  +        >      
           At this time the whole system was overhauled. Existing logging toolkits
           were surveyed and user feedback was gathered from both developers and 
           administrators. The new toolkit focused on speed, reliability and dynamic
           reconfiguration. It then added, at that time unique features, for filtering
           log events, multiple listeners (aka LogTargets) per category and delayed
           serialization of events.
  -      </p>
  -
  -    
  -</font></td>
  -</tr>
  -</table>
  -</div>
  -<br>
  -<div align="right">
  -<table cellspacing="0" cellpadding="2" border="0" width="100%">
  -<tr>
  -<td bgcolor="bbccdd"><font face="arial,helvetica,sanserif" color="#000000" size="+1"><b>Structure and Elements</b></font></td>
  -</tr>
  -<tr>
  -<td><font face="arial,helvetica,sanserif" color="#000000">
  -<br>
  -
         
  -<p align="justify">
  +  </p>
  +              </div>
  +        <div class="h3">
  +            <h3><a name="Structure and Elements">Structure and Elements</a></h3>
  +                        <p
  +        >      
           The most basic components of LogKit are the Logger, the LogEvent and the
           LogTarget. The Logger represents the client interface to the logging system.
           The developer interacts with Logger to generate LogEvents. The LogEvents 
           are routed to a LogTarget. The LogTarget decides what to do with the LogEvent,
           usually it is recorded to a file, a database or transmitted over the network.
  -      </p>
  -    
  -</font></td>
  -</tr>
  -</table>
  -</div>
  -<br>
  -<div align="right">
  -<table cellspacing="0" cellpadding="2" border="0" width="100%">
  -<tr>
  -<td bgcolor="bbccdd"><font face="arial,helvetica,sanserif" color="#000000" size="+1"><b>Priorities</b></font></td>
  -</tr>
  -<tr>
  -<td><font face="arial,helvetica,sanserif" color="#000000">
  -<br>
         
  -<p align="justify">
  +  </p>
  +              </div>
  +        <div class="h3">
  +            <h3><a name="Priorities">Priorities</a></h3>
  +                        <p
  +        >      
           One of the advantages of a logging toolkit is fine grain control over which
           statements get printed. At some times during development you may wish to enable 
           all logging statements and at other times they may wish to disable debug 
  @@ -171,213 +158,214 @@
           A Priority describes the urgency of a LogEvent. Below is a list of priorities
           that are usable within the LogKit system (extracted from the constants of class
           org.apache.log.Priority).
  -      </p>
  -
         
  -<ul>
  +  </p>
  +                                <ul
  +        >                    
           
  -<li>
  +                              <li
  +        >                    
             
  -<em>DEBUG:</em>
  -<p align="justify"></p>
  +                              <strong
  +        >      DEBUG:
  +  </strong>
  +                                <br
  +        >      
  +  </br>
  +                          
             Developer oriented messages, usually used during development of the product.
  -        </li>
           
  -<li>
  +            </li>
  +                          
  +        
  +                              <li
  +        >                    
             
  -<em>INFO:</em>
  -<p align="justify"></p>
  +                              <strong
  +        >      INFO:
  +  </strong>
  +                                <br
  +        >      
  +  </br>
  +                          
             Useful information messages such as state changes, client 
             connection, user login etc.
  -        </li>
           
  -<li>
  +            </li>
  +                          
  +        
  +                              <li
  +        >                    
             
  -<em>WARN:</em>
  -<p align="justify"></p>
  +                              <strong
  +        >      WARN:
  +  </strong>
  +                                <br
  +        >      
  +  </br>
  +                          
             A problem or conflict has occurred but it may be recoverable, then 
             again it could be the start of the system failing.
  -        </li>
           
  -<li>
  +            </li>
  +                          
  +        
  +                              <li
  +        >                    
             
  -<em>ERROR:</em>
  -<p align="justify"></p>
  +                              <strong
  +        >      ERROR:
  +  </strong>
  +                                <br
  +        >      
  +  </br>
  +                          
             A problem has occurred but it is not fatal. The system will still function.
  -        </li>
           
  -<li>
  +            </li>
  +                          
  +        
  +                              <li
  +        >                    
             
  -<em>FATAL_ERROR:</em>
  -<p align="justify"></p>
  +                              <strong
  +        >      FATAL_ERROR:
  +  </strong>
  +                                <br
  +        >      
  +  </br>
  +                          
             Something caused whole system to fail. This indicates that an administrator
             should restart the system and try to fix the problem that caused the failure.
  -        </li>
  -      
  -</ul>
  -
  +        
  +            </li>
  +                          
         
  -<p align="justify">
  +            </ul>
  +                                <p
  +        >      
           The range of priorities is limited by design as past experience has 
           indicated more levels do not offer any significant advantage to the 
           user.
  -      </p>
  -
         
  -<p align="justify">
  +  </p>
  +                                <p
  +        >      
           Each logger instance is associated with a Priority. This allows you to limit
           each logger so that it only displays messages greater than a certain priority.
           So if a DEBUG message occurred and the logger's priority was WARN, the LogEvent
           would be suppressed.
  -      </p>
  -
         
  -<p align="justify">
  +  </p>
  +                                <p
  +        >      
           A user can log at a certain priority by calling a method with matching name and
           the message as a string. For instance to log at debug level you would call
           logger.debug("My Message"). Similar methods exist for info(), warn() and error().
           There is also a set of similarly named methods that take both a message string 
           and an exception.
  -      </p>
  -
         
  -<p align="justify">
  +  </p>
  +                                <p
  +        >                    
           Where performance is critical it is often useful to check if a priority is
           enabled before constructing the message. In many cases the construction of
           the message is an expensive string operation and conversion operation. In this
           case it is useful to know before you create the message whether it will be 
           logged. The pattern of the method to check if a priority is enabled is 
  -        "is<em>Priority</em>Enabled()". An example use case is displayed below.
  -      </p>
  -
  -
  -<div align="center">
  -<table cellspacing="2" cellpadding="2" border="1">
  -<tr>
  -<td>
  -<pre>
  -if( logger.isDebugEnabled() )
  +        &quot;is
  +                              <em
  +        >      Priority
  +  </em>
  +                          Enabled()&quot;. An example use case is displayed below.
  +      
  +            </p>
  +                                  <div id="source">
  +    <pre>if( logger.isDebugEnabled() )
   {
     //Construct a message (expensive operation)
  -  final String message = "Var1 value: " + var1 + "\tVar2 value: " + var2 +
  -                         "\tVar3 value: " + var3 + ".";
  +  final String message = &quot;Var1 value: &quot; + var1 + &quot;\tVar2 value: &quot; + var2 +
  +                         &quot;\tVar3 value: &quot; + var3 + &quot;.&quot;;
     logger.debug( message );
  -}
  -</pre>
  -</td>
  -</tr>
  -</table>
  -</div>
  -
  -    
  -</font></td>
  -</tr>
  -</table>
  -</div>
  -<br>
  -<div align="right">
  -<table cellspacing="0" cellpadding="2" border="0" width="100%">
  -<tr>
  -<td bgcolor="bbccdd"><font face="arial,helvetica,sanserif" color="#000000" size="+1"><b>Categories</b></font></td>
  -</tr>
  -<tr>
  -<td><font face="arial,helvetica,sanserif" color="#000000">
  -<br>
  -
  -      
  -<p align="justify">
  +}</pre>
  +  </div>
  +              </div>
  +        <div class="h3">
  +            <h3><a name="Categories">Categories</a></h3>
  +                        <p
  +        >      
           In a complex system it is often not enough to suppress logging based on priority.
           For instance you may wish to log the network subsystem with DEBUG priority while
           the simulator subsystem with WARN priority. To accomplish this LogKit uses a concept
           termed Categories. Categories, often called Channels, Subjects or Facilities, are
           a subdivision of the logging namespace. 
  -      </p>
  -
         
  -<p align="justify">
  +  </p>
  +                                <p
  +        >      
           Each category is a name, made up of name components separated by a ".". So
           a category named "network.interceptor.connected" is made up of three name 
           components "network", "interceptor" and "connected", ordered from left to 
           right. Every logger is associated with a category at creation.
  -      </p>
  -
         
  -<p align="justify">
  +  </p>
  +                                <p
  +        >      
           LogKit takes it one step further and assumes that the namespace is hierarchical.
           The left-most name component is the most generic category while the right-most
           name component is the most specific. So "network.interceptor.connected" is a child
           category of "network.interceptor", which is in turn a child category of "network".
           There is also a root category "" that is hidden inside the org.apache.log.Hierarchy
           class. 
  -      </p>
  -
         
  -<p align="justify">
  +  </p>
  +                                <p
  +        >      
           The main reason for structuring logging namespace in a hierarchical manner is to
           allow inheritance. A logger will inherit it's parent priority if it has not
           been explicitly set. This allows you to set the "network" logger to have INFO 
           priority and unless the "network.interceptor" has had it's priority set it will 
           inherit the INFO priority. 
  -      </p>
  -
         
  -<p align="justify">
  +  </p>
  +                                <p
  +        >      
           Unlike other logging toolkits, there is no performance penalty for having deep 
           hierarchies. Each logger caches a Priority to check against. When a logger
           has it's logger set or unset, it updates the cached version of it's child 
           loggers.
  -      </p>
  -
  -    
  -</font></td>
  -</tr>
  -</table>
  -</div>
  -<br>
  -<div align="right">
  -<table cellspacing="0" cellpadding="2" border="0" width="100%">
  -<tr>
  -<td bgcolor="bbccdd"><font face="arial,helvetica,sanserif" color="#000000" size="+1"><b>Log Targets</b></font></td>
  -</tr>
  -<tr>
  -<td><font face="arial,helvetica,sanserif" color="#000000">
  -<br>
  -
         
  -<p align="justify">
  +  </p>
  +              </div>
  +        <div class="h3">
  +            <h3><a name="Log Targets">Log Targets</a></h3>
  +                        <p
  +        >      
           In LogKit, LogTargets are the destination of LogEvents. Decoupling LogEvent 
           generation from handling allows developers to change destinations of LogEvents
           dynamically or via configuration files. Possible destinations include writing
           to a database, a file, an IRC channel, a syslog server, an instant messaging 
           client etc.
  -      </p>
  -
         
  -<p align="justify">
  +  </p>
  +                                <p
  +        >      
           Like Priorities, it is often useful to allow LogTargets to be inherited between 
           loggers. Like Priority inheritance, LogTarget inheritance does not suffer any 
           runtime performance penalty.
  -      </p>
  -
         
  -<div align="right">
  -<table cellspacing="0" cellpadding="2" border="0" width="99%">
  -<tr>
  -<td bgcolor="ddeeff"><font face="arial,helvetica,sanserif" color="#000000" size="+0"><b>Filters</b></font></td>
  -</tr>
  -<tr>
  -<td><font face="arial,helvetica,sanserif" color="#000000">
  -<br>
  -
  -        
  -<p align="justify">
  +  </p>
  +                            <div class="h4">
  +            <h4><a name="Filters">Filters</a></h4>
  +                <p
  +        >      
             Filters are a special kind of LogTarget. Instead of writing to an output 
             destination they are used to filter out LogEvents or modify the LogEvents 
             details and pass it on to another LogTarget. 
  -        </p>
  -
           
  -<p align="justify">
  +  </p>
  +                  <p
  +        >      
             This can be a useful feature when you assign multiple LogTargets to a 
             logger. For instance you may add two LogTargets to a logger, one which
             writes LogEvents to a database and one which writes a message to the 
  @@ -385,96 +373,55 @@
             the database but only transmit FATAL_ERROR messages to pager. In this 
             case you would use a PriorityFilter to filter out non-FATAL_ERROR messages
             for pager log target.          
  -        </p>
  -      
  -      
  -</font></td>
  -</tr>
  -</table>
  -</div>
  -<br>
  -
  -      
  -<div align="right">
  -<table cellspacing="0" cellpadding="2" border="0" width="99%">
  -<tr>
  -<td bgcolor="ddeeff"><font face="arial,helvetica,sanserif" color="#000000" size="+0"><b>AsyncLogTarget</b></font></td>
  -</tr>
  -<tr>
  -<td><font face="arial,helvetica,sanserif" color="#000000">
  -<br>
  -
           
  -<p align="justify">
  +  </p>
  +        </div>
  +                          <div class="h4">
  +            <h4><a name="AsyncLogTarget">AsyncLogTarget</a></h4>
  +                <p
  +        >      
             AsyncLogTarget is another kind of special LogTarget. It takes a log event
             and copies it into a queue so that another thread can actually write the 
             LogEvent to another LogTarget. This is useful if logging to a particular 
             LogTarget is a slow operation (such as a MailLogTarget).
  -        </p>
  -
           
  -<p align="justify">
  +  </p>
  +                  <p
  +        >      
             Below is a snippet of code that creates an AsyncLogTarget to write messages
             in another thread.
  -        </p>
  -
  -
  -<div align="center">
  -<table cellspacing="2" cellpadding="2" border="1">
  -<tr>
  -<td>
  -<pre>
  -LogTarget mySlowTarget = ...;
  +        
  +  </p>
  +                    <div id="source">
  +    <pre>LogTarget mySlowTarget = ...;
   AsyncLogTarget asyncTarget = new AsyncLogTarget( mySlowTarget );
   Thread thread = new Thread( asyncTarget );
   thread.setPriority( Thread.MIN_PRIORITY );
   thread.start();
   
  -logger.setLogTargets( new LogTarget[] { asyncTarget } );
  -</pre>
  -</td>
  -</tr>
  -</table>
  -</div>
  -      
  -</font></td>
  -</tr>
  -</table>
  -</div>
  -<br>
  -
  -    
  -</font></td>
  -</tr>
  -</table>
  -</div>
  -<br>
  -<div align="right">
  -<table cellspacing="0" cellpadding="2" border="0" width="100%">
  -<tr>
  -<td bgcolor="bbccdd"><font face="arial,helvetica,sanserif" color="#000000" size="+1"><b>Formatters</b></font></td>
  -</tr>
  -<tr>
  -<td><font face="arial,helvetica,sanserif" color="#000000">
  -<br>
  -
  -      
  -<p align="justify">
  +logger.setLogTargets( new LogTarget[] { asyncTarget } );</pre>
  +  </div>
  +        </div>
  +            </div>
  +        <div class="h3">
  +            <h3><a name="Formatters">Formatters</a></h3>
  +                        <p
  +        >      
           LogTargets that write to a serial or unstructured store (ie filesystem or 
           network based LogTargets) need some method to serialize the LogEvent 
           before writing to the store. The most common way to serialize the LogEvent
           is to use a Formatter. 
  -      </p>
  -
         
  -<p align="justify">
  +  </p>
  +                                <p
  +        >      
           The Formatter interface takes a LogEvent and returns a String object. The
           most commonly use LogEvent is the PatternFormatter. The pattern formatter 
           takes a format specifier that has a similar format to c's printf function.
  -      </p>
  -
         
  -<p align="justify">
  +  </p>
  +                                <p
  +        >      
           The format specifier consists of a string containing raw text combined with 
           pattern elements. Each pattern element has the generalized form 
           "%[+|-]#.#{field:subformat}". The +|- indicates whether the pattern element 
  @@ -486,61 +433,39 @@
           This parameter must be supplied and correlates to fields of LogEvent. 
           'subformat' is currently unused except in the case of "context" field. This is 
           further discussed below.
  -      </p>
  -
         
  -<p align="justify">
  +  </p>
  +                                <p
  +        >      
           Following is a number of examples for PatternFormatter's format specifier 
           and actual output.
  -      </p>
  -
  -
  -<div align="center">
  -<table cellspacing="2" cellpadding="2" border="1">
  -<tr>
  -<td>
  -<pre>
  -format: "%7.7{priority} %5.5{rtime} [%8.8{category}]: %{message}\n%{throwable}"
  +      
  +  </p>
  +                                  <div id="source">
  +    <pre>format: &quot;%7.7{priority} %5.5{rtime} [%8.8{category}]: %{message}\n%{throwable}&quot;
   output: DEBUG   123   [network.]: This is a debug message
   
  -format: "%7.7{priority} %5.5{rtime} [%{category}]: %{message}\n"
  +format: &quot;%7.7{priority} %5.5{rtime} [%{category}]: %{message}\n&quot;
   output: DEBUG   123   [network.interceptor.connected]: This is a debug message
   output: DEBUG   123   [network]: This is another debug message
   
  -format: "%7.7{priority} %5.5{rtime} [%10.{category}]: %{message}\n"
  +format: &quot;%7.7{priority} %5.5{rtime} [%10.{category}]: %{message}\n&quot;
   output: DEBUG   123   [network.interceptor.connected]: This is a debug message
  -output: DEBUG   123   [network   ]: This is another debug message
  -</pre>
  -</td>
  -</tr>
  -</table>
  -</div>
  -
  -      
  -<p align="justify">
  +output: DEBUG   123   [network   ]: This is another debug message</pre>
  +  </div>
  +                                <p
  +        >      
           There is also ExtendedPatternFormatter that allows two extra fields, namely
           "method" and "thread". The "method" field attempts to determine the method that 
           called the Logger method to generate the LogEvent. The "thread" field displays 
           the name of the current thread.
  -      </p>
  -
  -    
  -</font></td>
  -</tr>
  -</table>
  -</div>
  -<br>
  -<div align="right">
  -<table cellspacing="0" cellpadding="2" border="0" width="100%">
  -<tr>
  -<td bgcolor="bbccdd"><font face="arial,helvetica,sanserif" color="#000000" size="+1"><b>Context</b></font></td>
  -</tr>
  -<tr>
  -<td><font face="arial,helvetica,sanserif" color="#000000">
  -<br>
  -
         
  -<p align="justify">
  +  </p>
  +              </div>
  +        <div class="h3">
  +            <h3><a name="Context">Context</a></h3>
  +                        <p
  +        >      
           In many systems you need to include extra information depending in logs that depends
           on information not included in the LogEvent. For instance the Formatters section described
           an ExtendedPatternFormatter that included information such as calling method and calling 
  @@ -548,159 +473,115 @@
           user executing log statement, the network interface that the client component is listening 
           to (ie 127.0.0.1 vs 192.168.1.1), hostname (especially important on multihomed boxen) or 
           source of LogEvent (useful when writing a centralized log server).
  -      </p>
  -
         
  -<p align="justify">
  +  </p>
  +                                <p
  +        >      
           There are a number of strategies to deal with application specific contextual 
           information. Some logging toolkits encourage extending the Logger, LogEvent and 
           LogTargets while others encourage using application specific LogTargets. The way 
           that LogKit solves this problem is by using a generic ContexMap object. 
  -      </p>
  -
         
  -<p align="justify">
  +  </p>
  +                                <p
  +        >      
           The ContextMap allows the user to store arbitrary objects using a string key. These 
           objects can then be extracted by the LogTargets and used as appropriate. If you were
           using the PatternFormatter you could extract a value from ContextMap by specify the 
           "context" field with it's subformat set to the appropriate key. Some examples are 
           illustrated below.
  -      </p>
  -
  -
  -<div align="center">
  -<table cellspacing="2" cellpadding="2" border="1">
  -<tr>
  -<td>
  -<pre>
  -format: "%7.7{priority} [%{context:hostname}]: %{message}\n"
  +      
  +  </p>
  +                                  <div id="source">
  +    <pre>format: &quot;%7.7{priority} [%{context:hostname}]: %{message}\n&quot;
   output: DEBUG   [helm.realityforge.org]: This is a debug message
   
  -format: "%7.7{priority} [%{context:interface}]: %{message}\n"
  +format: &quot;%7.7{priority} [%{context:interface}]: %{message}\n&quot;
   output: DEBUG   [127.0.0.1]: This is logging about loopback interface
   output: DEBUG   [192.168.1.1]: This is logging about internal network interface
   output: DEBUG   [203.121.1.2]: This is logging about external network interface
   
  -format: "%7.7{priority} [%{context:user}]: %{message}\n"
  -output: DEBUG   [Barney Rubble]: This is a debug message
  -</pre>
  -</td>
  -</tr>
  -</table>
  -</div>
  -
  -      
  -<p align="justify">
  -        
  -<em>Warning:</em> Older versions of LogKit also incorporated a ContextStack
  +format: &quot;%7.7{priority} [%{context:user}]: %{message}\n&quot;
  +output: DEBUG   [Barney Rubble]: This is a debug message</pre>
  +  </div>
  +                                <p
  +        >                    
  +        
  +                              <em
  +        >      Warning:
  +  </em>
  +                           Older versions of LogKit also incorporated a ContextStack
           that offered hierarchical management of context. It was discovered that this
           design encouraged bad practices and thus use of this feature has been 
           deprecated in favour of using ContextMap. The ContextStack is still accessible
  -        if users do not specify a subformat or specify the subformat "stack". However
  +        if users do not specify a subformat or specify the subformat &quot;stack&quot;. However
           it is strongly advised that users do not use this feature as it will be 
           removed in a future iteration.
  -      </p>
  -
         
  -<p align="justify">
  +            </p>
  +                                <p
  +        >      
           When using a ContextMap you create the object and populate it using the 
           set(key,value) method. After populating the ContextMap you call the method
           makeReadOnly(). This makes it impossible for hostile code to modify context
           in which logging occurs.
  -      </p>
  -
         
  -<p align="justify">
  +  </p>
  +                                <p
  +        >      
           Then you need to associate the ContextMap with a thread by using 
           ContextMap.bind( myContextMap ). The ContextMap is bound to a thread
           using java.lang.InheritableThreadLocal and thus maps are inherited between 
           threads as specified by InheritableThreadLocal.
  -      </p>
  -
         
  -<p align="justify">
  +  </p>
  +                                <p
  +        >      
           Below is an example of how a user can create and bind a ContextMap.
  -      </p>
  -
  -
  -<div align="center">
  -<table cellspacing="2" cellpadding="2" border="1">
  -<tr>
  -<td>
  -<pre>
  -final ContextMap context = new ContextMap();
  -context.set( "user", "Fred Flinstone" );
  -context.set( "interface", myInterface );
  -context.set( "hostname", "helm.realityforge.org" );
  -context.set( "jvmid", myJvmId );
  +      
  +  </p>
  +                                  <div id="source">
  +    <pre>final ContextMap context = new ContextMap();
  +context.set( &quot;user&quot;, &quot;Fred Flinstone&quot; );
  +context.set( &quot;interface&quot;, myInterface );
  +context.set( &quot;hostname&quot;, &quot;helm.realityforge.org&quot; );
  +context.set( &quot;jvmid&quot;, myJvmId );
   context.makeReadOnly();
   
   //bind new ContextMap to current thread and subthreads
  -ContextMap.bind( context );
  -</pre>
  -</td>
  -</tr>
  -</table>
  -</div>
  -
  -    
  -</font></td>
  -</tr>
  -</table>
  -</div>
  -<br>
  -<div align="right">
  -<table cellspacing="0" cellpadding="2" border="0" width="100%">
  -<tr>
  -<td bgcolor="bbccdd"><font face="arial,helvetica,sanserif" color="#000000" size="+1"><b>Examples</b></font></td>
  -</tr>
  -<tr>
  -<td><font face="arial,helvetica,sanserif" color="#000000">
  -<br>
  -
  -      
  -<p align="justify">
  +ContextMap.bind( context );</pre>
  +  </div>
  +              </div>
  +        <div class="h3">
  +            <h3><a name="Examples">Examples</a></h3>
  +                        <p
  +        >      
           One of the best ways to learn how to use a toolkit is to see an 
           example in action. With that heres some example uses of LogKit. The first
           example is in a simple application while the next example is in a servlet.
           The servlet example demonstrates the usage of filters.
  -      </p>
  -
  -
  -<div align="center">
  -<table cellspacing="2" cellpadding="2" border="1">
  -<tr>
  -<td>
  -<pre>
  -Logger logger = Hierarchy.getDefaultHierarchy().getLoggerFor("myCategory");
  +      
  +  </p>
  +                                  <div id="source">
  +    <pre>Logger logger = Hierarchy.getDefaultHierarchy().getLoggerFor(&quot;myCategory&quot;);
   logger.setPriority( Priority.DEBUG );
  -logger.debug( "This is a debug message" );
  -</pre>
  -</td>
  -</tr>
  -</table>
  -</div>
  -
  -
  -<div align="center">
  -<table cellspacing="2" cellpadding="2" border="1">
  -<tr>
  -<td>
  -<pre>
  -//Create a Log filter that writes to servlet Containers log
  +logger.debug( &quot;This is a debug message&quot; );</pre>
  +  </div>
  +                                  <div id="source">
  +    <pre>//Create a Log filter that writes to servlet Containers log
   //If priority greater than ERROR
   PriorityFilter filter = new PriorityFilter(Priority.ERROR);
   filter.addTarget( new ServletOutputLogTarget(context) );
   
  -String logName = getInitParameter("log-name");
  -if( null == logName ) logName = "myservlet.log";
  +String logName = getInitParameter(&quot;log-name&quot;);
  +if( null == logName ) logName = &quot;myservlet.log&quot;;
   
  -final String path = context.getRealPath("/") + "/WEB-INF/logs/" + logName ;
  +final String path = context.getRealPath(&quot;/&quot;) + &quot;/WEB-INF/logs/&quot; + logName ;
   
   //Create a logger to write to a file as specified 
   //with servlet init parameters
  -final String pattern = "%7.7{priority} %5.5{time}   [%8.8{category}] " +
  -                  "(%{context}): %{message}\\n%{throwable}";
  +final String pattern = &quot;%7.7{priority} %5.5{time}   [%8.8{category}] &quot; +
  +                  &quot;(%{context}): %{message}\\n%{throwable}&quot;;
   final PatternFormatter formatter = new PatternFormatter( pattern );
   final File file = new File( path );
   
  @@ -708,69 +589,47 @@
   FileTarget target = new FileTarget( file, true, formatter );
   
   //Create logger
  -myLogger = Hierarchy.getDefaultHierarchy().getLoggerFor("myServlet");
  +myLogger = Hierarchy.getDefaultHierarchy().getLoggerFor(&quot;myServlet&quot;);
   
   //Set log targets of logger
   myLogger.setLogTargets( new LogTarget[] { target, filter } );
   
  -String logLevel = getInitParameter("log-priority");
  -if( null == logLevel ) logLevel = "DEBUG";
  +String logLevel = getInitParameter(&quot;log-priority&quot;);
  +if( null == logLevel ) logLevel = &quot;DEBUG&quot;;
   
   //Set log targets parameter based on init parameters
   Priority priority = Priority.getPriorityForName( logLevel );
  -myLogger.setPriority( priority );
  -</pre>
  -</td>
  -</tr>
  -</table>
  -</div>
  -
  -    
  -</font></td>
  -</tr>
  -</table>
  -</div>
  -<br>
  -<div align="right">
  -<table cellspacing="0" cellpadding="2" border="0" width="100%">
  -<tr>
  -<td bgcolor="bbccdd"><font face="arial,helvetica,sanserif" color="#000000" size="+1"><b>Conclusion</b></font></td>
  -</tr>
  -<tr>
  -<td><font face="arial,helvetica,sanserif" color="#000000">
  -<br>
  -
  -      
  -<p align="justify">
  +myLogger.setPriority( priority );</pre>
  +  </div>
  +              </div>
  +        <div class="h3">
  +            <h3><a name="Conclusion">Conclusion</a></h3>
  +                        <p
  +        >      
           LogKit is a friendly, easy to use logging toolkit. It is high performing and 
           easily integrated into existing products. By design it does not specify any
           configuration format but instead encourages users to integrate it into their 
           existing products. It also is designed to run in a secure environment by 
           limiting client access to hierarchies. 
  -      </p>
  +      
  +  </p>
  +              </div>
  +              </div>
  +		<div align="right" id="authors">
  +		 by   <a href="peter@apache.org">Peter Donald</a>
  +		</div>
  +          </div></td>
  +        </tr>
  +      </table>
  +
  +      <!-- FOOTER -->
  +      <div id="footer">
  +        <table border="0" cellspacing="0" cellpadding="4">
  +          <tr>
  +            <td>Copyright &#169; 1999-2002, Apache Software Foundation</td>
  +          </tr>
  +        </table>
  +      </div>
   
  -    
  -</font></td>
  -</tr>
  -</table>
  -</div>
  -<br>
  -</td>
  -</tr>
  -</table>
  -<br>
  -<table cellpadding="0" cellspacing="0" border="0" width="100%">
  -<tr>
  -<td>
  -<hr size="1" noshade="">
  -</td>
  -</tr>
  -<tr>
  -<td align="center"><font color="#525D76" size="-1" face="arial,helvetica,sanserif"><i>
  -              Copyright &copy;1999-2002 by the Apache Software Foundation.
  -              All Rights Reserved.
  -            </i></font></td>
  -</tr>
  -</table>
  -</body>
  -</html>
  +    </body>
  +  </html>
  
  
  
  1.1                  jakarta-avalon-site/docs/logkit/css/ns4_only.css
  
  Index: ns4_only.css
  ===================================================================
  /* simple rules suitable for Netscape 4.x only; richer rules are in tigris.css. see <http://style.tigris.org/> */
  
  /* colors, backgrounds, borders, link indication */ 
  
  body {
   background: #fff;
   color: #000;
   }
  #leftcol a:link, #leftcol a:visited {
   color: blue;
   }
  a:active, a:hover, #leftcol a:active, #leftcol a:hover {
   color: #f30;
   }
  #login a:link, #login a:visited {
   color: white; 
   text-decoration: underline;
   }
  #banner a:active, #banner a:hover {
   color: #f90;
   }
  #leftcol a, #breadcrumbs a  {
   text-decoration: none;
   }
  h2 .lastchild {
   color: #777
   } 
  .a td { 
   background: #ddd;
   }
  .b td { 
   background: #efefef;
   }
  .tabs td, .tabs th {
   background-color: #ddd;
   }
  body .app th {
   background-color: #bbb;
   }
  body .tabs th {
   background-color: #888;
   color: #fff;
   }
  body .app .axial th {
   background-color: #ddd;
   color: black
   }
  .tabs td {
   background-color: #ddd;
   }
  .alert { 
   color: #c00;
   }
  .confirm {
   color: green;
   }
  .info {
   color: blue;
   }
  .selection {
   background: #ffc;
   }
  #login {
   color: #fff;
   }
  #helptext th {
   background: #cc9;
   }
  #helptext td {
   background: #ffc;
   }
  .tabs a  {
   text-decoration: none;
   }
  #navcolumn div strong {
   color: #555;
   }
  #banner, #banner td { 
   background: #036;
   color: #fff;
   }
  body #banner #login a { 
   color: white;
   }
  
  
  /* font and text properties, exclusive of link indication, alignment, text-indent */
  
  body, div, p, th, td, li, dl, dd {
   font-family: Lucida, Arial, Helvetica, sans-serif;
   }
  code, pre {
   font-family: 'Andale Mono', Courier, monospace;
   }
  h2, h3, h4 {
   font-family: Tahoma, Verdana, Helvetica, Arial, sans-serif;
   }
  .selection {
   font-weight: bold
   }
  #login .username {
   font-weight: bold;
   }
  
  
  /* box properties (exclusive of borders), positioning, alignments, list types, text-indent */
  
  th, td {
   text-align: left;
   vertical-align: top 
   }
  .right {
   text-align: right;
   }
  .center {
   text-align: center;
   }
  body .app .axial th {
   text-align: right;
   }
  .app .axial td th {
   text-align: left;
   }
  body td .stb {
   margin-top: 1em;
   text-indent: 0;
   }
  body td .mtb {
   margin-top: 2em;
   text-indent: 0;
   }
  dd {
   margin-bottom: .67em;
   }
  #footer {
   margin: 4px
   }
  #helptext {
   margin-top: 1em
   }
  #helptext td div {
   margin: .5em
   }
  .courtesylinks {
   margin-top: 1em;
   padding-top: 1em
   }
  #navcolumn div {
   margin-bottom: .5em;
   }
  #navcolumn div div {
   margin-top: .3em
   }
  #navcolumn div div {
   padding-left: 1em;
   }
  #banner, #banner td { 
   vertical-align: middle;
   }
  body.docs, body.nonav {
   margin: 1em
   }
  
  
  
  1.1                  jakarta-avalon-site/docs/logkit/css/print.css
  
  Index: print.css
  ===================================================================
  #banner, #footer, #leftcol, #breadcrumbs, .docs #toc, .docs .courtesylinks	{
  	display: none;
  	}
  body.docs div.docs	{
  	margin: 0 !important;
  	border: none !important
  	}
  
  
  
  1.1                  jakarta-avalon-site/docs/logkit/css/site.css
  
  Index: site.css
  ===================================================================
  
  div#banner {
   border-top: 1px solid #fff;
   border-bottom: 1px solid #aaa;
  }
  
  #banner, #banner td {
   background: #fff;
   color: #036;
  }
  
  #source {
   background-color: #fff;
   color: #000;
   border-right: 1px solid #888;
   border-left: 1px solid #888;
   border-top: 1px solid #888;
   border-bottom: 1px solid #888;
   margin-right: 7px;
   margin-left: 7px;
   margin-top: 1em;
  }
  
  #source pre {
   margin-right: 7px;
   margin-left: 7px;
  }
  
  
  
  1.1                  jakarta-avalon-site/docs/logkit/css/tigris.css
  
  Index: tigris.css
  ===================================================================
  /* contains rules unsuitable for Netscape 4.x; simpler rules are in ns4_only.css. see <http://style.tigris.org/> */
  
  /* colors, backgrounds, borders, link indication */ 
  
  body {
   background: #fff;
   color: #000;
   }
  .app h3, .app h4, .tabs td, .tabs th, .functnbar {
   background-image: url(../images/nw_min.gif);
   background-repeat: no-repeat;
   }
  #navcolumn div div, body.docs #toc li li  {
   background-image: url(../images/strich.gif);
   background-repeat: no-repeat;
   background-position: .5em .5em;
   }
  #navcolumn div div.heading  {
   background-image: none;
   }
  .app h3, .app h4 {
   color: #fff;
   }
  .app h3 {
   background-color: #036;
   }
  .app h4 { 
   background-color: #888;
   }
  .a td { 
   background: #ddd;
   }
  .b td { 
   background: #efefef;
   }
  table, th, td {
   border: none
   } 
  .mtb {
   border-top: solid 1px #ddd;
   }
  div.colbar {
   background: #bbb;
   }
  #banner {
   border-top: 1px solid #369;
   border-bottom: 1px solid #003;
   }
  div#helptext th {
   border-bottom: 1px solid #996;
   border-right: 1px solid #996;
   }
  div#helptext td {
   border-bottom: 1px solid #cc9;
   border-right: 1px solid #cc9;
   }
  .tabs th {
   border-right: 1px solid #333;
   background-color: #ddd;
   color: #fff;
   }
  .tabs td {
   background-color: #999;
   border-bottom: 1px solid #fff;
   border-right: 1px solid #fff;
   }
  .tabs { 
   border-bottom: 6px #ddd solid;
   }
  .tabs th, .tabs th a:link, .tabs th a:visited {
   color: #555;
   }
  .tabs td, .tabs td a:link, .tabs td a:visited  { 
   color: #fff;
   }
  .tabs a  {
   text-decoration: none;
   }
  #navcolumn {
   background: #eee;
   border-right: 1px solid #aaa;
   border-bottom: 1px solid #aaa;
   }
  #breadcrumbs {
   border-bottom: 1px solid #aaa;
   background-color: #ddd
   }
  #navcolumn, #breadcrumbs {
   border-top: 1px solid #fff;
   }
  #rightcol div.www, #rightcol div.help {
   border: 1px solid #ddd;
   }
  div#navcolumn div.focus { 
   border-top: 1px solid #aaa;
   border-left: 1px solid #aaa;
   background-color: #fff;
   } 
  body.docs div.docs { 
   background: #fff;
   border-left: 1px solid #ddd;
   border-top: 1px solid #ddd;
   }
  body.docs { 
   background: #eee url(../images/help_logo.gif) top right no-repeat !important;
   }
  .docs h3, .docs h4 {
   border-top: solid 1px #000;
   }
  #alerterrormessage { 
   background: url(../images/icon_alert.gif) top left no-repeat !important;
   }
  .functnbar {
   background-color: #aaa;
   }
  .functnbar2, .functnbar3  {
   background: #aaa url(../images/sw_min.gif) no-repeat bottom left;
   }
  .functnbar3 {
   background-color: #ddd;
   }
  .functnbar, .functnbar2, .functnbar3 {
   color: #000;
   }
  .functnbar a, .functnbar2 a, .functnbar3 a {
   color: #000;
   text-decoration: underline;
   }
  #topmodule {
   background: #ddd;
   border-top: 1px solid #fff;
   border-bottom: 1px solid #aaa; 
   border-right: 1px solid #aaa; 
   }
  #topmodule #issueid {
   border-right: 1px solid #aaa;
   }
  a:link, #navcolumn a:visited, .app a:visited, .tasknav a:visited {
   color: blue;
   }
  a:link.selfref, a:visited.selfref {
   color: #555 !important;
   text-decoration: none;
   }
  a:active, a:hover, #leftcol a:active, #leftcol a:hover {
   color: #f30 !important;
   }
  #login a:link, #login a:visited {
   color: white; 
   text-decoration: underline;
   }
  #banner a:active, #banner a:hover {
   color: #f90 !important;
   }
  #leftcol a, #breadcrumbs a  {
   text-decoration: none;
   }
  #apphead h2 em {
   color: #777;
   }
  a:link.selfref, a:visited.selfref {
   color: #555 !important;
   text-decoration: none;
   }
  .app th {
   background-color: #bbb;
   }
  .axial th {
   background-color: #ddd;
   color: black
   }
  .alert { 
   color: #c00;
   }
  .confirm {
   color: green;
   }
  .info {
   color: blue;
   }
  .selection {
   background: #ffc;
   }
  #login {
   color: #fff;
   }
  #helptext th {
   background: #cc9;
   }
  #helptext td {
   background: #ffc;
   }
  #navcolumn div strong {
   color: #000;
   }
  #banner, #banner td { 
   background: #036;
   color: #fff;
   }
  body #banner #login a { 
   color: #fff;
   }
  h4 a:link, h4 a:visited  {
   text-decoration: underline;
   color: #fff;
   }
  
  /* font and text properties, exclusive of link indication, alignment, text-indent */
  
  body, th, td, input, select, textarea, h2 small {
   font-family: Verdana, Helvetica, Arial, sans-serif;
   }
  code, pre {
   font-family: 'Andale Mono', Courier, monospace;
   }
  html body, body th, body td, textarea, h2 small, .app h3, .app h4, #rightcol h3, #bodycol pre, #bodycol code {
   font-size: x-small;
   voice-family: "\"}\"";
   voice-family: inherit;
   font-size: small
   }
  html>body, html>body th, html>body td, html>body input, html>body select, html>body textarea, html>body h2 small, html>body .app h3, html>body .app h4, html>body #rightcol h3, html>body #bodycol pre, html>body #bodycol code {
   font-size: small
   }
  small, div#footer td, div#login, div.tabs th, div.tabs td, input, select, .paginate, .functnbar, .functnbar2, .functnbar3, #breadcrumbs td, .courtesylinks, #rightcol div.help, .colbar, .tasknav, body.docs div#toc, #leftcol {
   font-size: x-small;
   voice-family: "\"}\"";
   voice-family: inherit;
   font-size: x-small
   }
  html>body small, html>body div#footer td, html>body div#login, html>body div.tabs th, html>body div.tabs td, html>body input, html>body select, html>body .paginate, html>body .functnbar, html>body .functnbar2, html>body .functnbar3, html>body #breadcrumbs td, html>body .courtesylinks, html>body #rightcol div.help, html>body .colbar, html>body .tasknav, html>body.docs #toc, html>body #leftcol {
   font-size: x-small
   }
  #bodycol h2 {
   font-family: Tahoma, Verdana, Helvetica, Arial, sans-serif;
   font-size: 1.5em;
   font-weight: normal;
   }
  .tabs td, .tabs th, dt, .tasknav .selfref, #login .username, .selection {
   font-weight: bold
   }
  h4 {
   font-size: 1em;
   }
  #apphead h2 em {
  	font-style: normal;
   } 
  
  /* box properties (exclusive of borders), positioning, alignments, list types, text-indent */
  
  #bodycol h2 {
   margin-top: .3em;
   margin-bottom: .5em;
   }
  p, ul, ol, dl {
   margin-top: .67em;
   margin-bottom: .67em;
   }
  h3, h4 {
   margin-bottom: 0;
   }
  form {
   margin-top: 0;
   margin-bottom: 0;
   }
  #bodycol {
   padding-left: 12px;
   padding-right: 12px;
   width: 100%;
   voice-family: "\"}\"";
   voice-family: inherit;
   width: auto;
   }
  html>body #bodycol {
   width: auto;
   }
  .docs {
   line-height: 1.4;
   }
  .app h3, .app h4 {
   padding: 5px;
   margin-right: 2px;
   margin-left: 2px;
   }
  .h3 p, .h4 p, .h3 dt, .h4 dt {
   margin-right: 7px;
   margin-left: 7px;
   }
  .tasknav {
   margin-bottom: 1.33em
   }
  div.colbar {
   padding: 3px;
   margin: 2px 2px 0;
   }
  .tabs { 
   margin-top: .67em;
   margin-right: 2px;
   margin-left: 2px;
   }
  #leftcol {
   padding-bottom: .5em;
   }
  #breadcrumbs td {
   vertical-align: middle;
   padding: 2px 8px;
   } 
  .tabs td, .tabs th {
   padding: 3px 9px;
   }
  #rightcol div.www, #rightcol div.help {
   padding: 0 .5em
   }
  #navcolumn {
   margin: -8px -8px 0 -8px;
   padding: 4px;
   }
  #navcolumn div {
   padding-left: 5px
   }
  div#navcolumn div div {
   margin-top: .3em;
   margin-bottom: .3em;
   }
  div#navcolumn div.focus { 
   margin-top: -.1em;
   padding: .2em 4px; 
   } 
  body.docs #toc { 
   position: absolute;
   top: 15px;
   left: 0px;
   width: 120px;
   padding: 0 20px 0 0
   }
  body.docs #toc ul, #toc ol {
   margin-left: 0;
   padding-left: 0;
   }
  body.docs #toc li {
   margin-top: 7px;
   padding-left: 10px;
   list-style-type: none;
   }
  body.docs div.docs { 
   margin: 61px 0 0 150px;
   padding: 1em 2em 1em 1em !important;
   }
  .docs p+p {
   text-indent: 5%;
   margin-top: -.67em
   }
  .docs h3, .docs h4 {
   margin-bottom: .1em;
   padding-top: .3em;
   }
  #alerterrormessage { 
   padding-left: 100px;
   }
  .functnbar, .functnbar2, .functnbar3 {
   padding: 5px;
   margin: .67em 2px;
   }
  #topmodule td {
   vertical-align: middle;
   padding: 2px 8px
   } 
  body {
   padding: 1em;
   }
  body.composite, body.docs {
   margin: 0;
   padding: 0;
   }
  th, td {
   text-align: left;
   vertical-align: top 
   }
  .right {
   text-align: right !important;
   }
  .center {
   text-align: center !important;
   }
  .axial th {
   text-align: right;
   }
  .app .axial td th {
   text-align: left;
   }
  body td .stb {
   margin-top: 1em;
   text-indent: 0;
   }
  body td .mtb {
   margin-top: 2em;
   text-indent: 0;
   }
  dd {
   margin-bottom: .67em;
   }
  #footer {
   margin: 4px
   }
  #helptext {
   margin-top: 1em
   }
  #helptext td div {
   margin: .5em
   }
  .courtesylinks {
   margin-top: 1em;
   padding-top: 1em
   }
  #navcolumn div {
   margin-bottom: .5em;
   }
  #navcolumn div div {
   margin-top: .3em
   }
  #navcolumn div div {
   padding-left: 1em;
   }
  #banner, #banner td { 
   vertical-align: middle;
   }
  
  
  
  1.2       +46 -70    jakarta-avalon-site/docs/logkit/images/header.gif
  
  	<<Binary file>>
  
  

--
To unsubscribe, e-mail:   <mailto:avalon-cvs-unsubscribe@jakarta.apache.org>
For additional commands, e-mail: <mailto:avalon-cvs-help@jakarta.apache.org>


Mime
View raw message