<html>
<head>
<title>Status File for Jakarta Commons "Logging" Component</title>
<head>
<body bgcolor="white">


<div align="center">
<h1>The Jakarta Commons <em>Logging</em> Component</h1>
$Id: STATUS.html,v 1.10 2003/03/01 09:55:06 baliuka Exp $<br />
<a href="#Introduction">[Introduction]</a>
<a href="#Dependencies">[Dependencies]</a>
<a href="#Release Info">[Release Info]</a>
<a href="#Committers">[Committers]</a>
<a href="#Action Items">[Action Items]</a>
<br /><br />
</div>


<a name="Introduction"></a>
<h3>1.  INTRODUCTION</h3>


<p> The commons-logging package provides a simple, component 
oriented interface (<code>org.apache.commons.logging.Log</code>) together with wrappers for 
logging systems. The user can choose at runtime
which system they want to use. 
In addition, a small number of basic implementations are provided
to allow users to use the package standalone.
</p>

<p>commons-logging was heavily influenced by Avalon's Logkit and Log4J.  The commons-logging
abstraction is meant to minimixe the differences between the two, and to allow a
developer to not tie himself to a particular logging implementation.
</p>

<p>
The package does :
<ul>
<li>Have an API which should be as simple to use as possible</li>
<li>Provide support for Avalon's Logkit</li>
<li>Provide support for JDK 1.4 logging</li>
<li>Provide support for log4j</li>
<li>Provide pluggable support for other logging APIs</li>
<li>Privide a simple System.out logger</li>
</ul>
</p>

<p>
Non-goals:
<ul>
<li>This package will not perform logging itself, except at the most basic
    level.</li>
<li>We do not seek to become a "standard" API.</li>
</ul>
</p>
 

<a name="Dependencies"></a>
<h3>2.  DEPENDENCIES</h3>

<p>The <em>Logging</em> component is dependent upon the following external
components for compilation:</p>
<ul>
<li><a href="http://java.sun.com/j2se">Java Development Kit</a>
    (Version 1.2 or later)</li>
<li><a href="http://jakarta.apache.org/log4j/">Jakarta Log4j</a>
    (optional)</li>
<li><a href="http://jakarta.apache.org/avalon/">Jakarta Avalon
    (optional) LogKit</a></li>
<li><a href="http://java.sun.com/j2se">Java Development Kit</a> (Version 1.4
    or later) logging APIs (optional)</li>
</ul>

<p> Of course, the user must ensure that any logging systems that they wish
to use are present in the classpath when they use this component. </p>

<a name="Release Info"></a>
<h3>3.  RELEASE INFO</h3>

<table border="1">
  <tr>
    <th width="50%">Version</th>
    <th width="50%">Release Date</th>
  </tr>
  <tr>
    <td><a href='http://jakarta.apache.org/builds/jakarta-commons/release/commons-logging/v1.0.2'>
        commons-logging-1.0.2</a></td>
    <td>27-Sep-2002</td>
  </tr>
  <tr>
    <td><a href='http://jakarta.apache.org/builds/jakarta-commons/release/commons-logging/v1.0.1'>
        commons-logging-1.0.1</td>
    <td>12-Aug-2002</td>
  </tr>
  <tr>
    <td><a href='http://jakarta.apache.org/builds/jakarta-commons/release/commons-logging/v1.0'>
        commons-logging-1.0</td>
    <td>20-Feb-2002</td>
  </tr>
</table>

<p>Planned Next Release:  TBD</p>



<a name="Committers"></a>
<h3>4.  COMMITTERS</h3>

<p>The following individuals are the primary developers and maintainers of this
component.  Developers who plan to use <em>Logging</em> in their own
projects are encouraged to collaborate on the future development of this
component to ensure that it continues to meet a variety of needs.</p>
<ul>
  <li>Morgan Delagrange</li>
  <li>Rodney Waldhoff</li>
  <li>Craig McClanahan</li>
  <li>Robert Burrell Donkin</li>
  <li>Scott Sanders</li>
  <li>Peter Donald</li>
  <li>Costin Manolache</li>
  <li>Richard A. Sitze</li>
  <li>Juozas Baliuka</li>  
</ul>


<a name="Action Items"></a>
<h3>5.  ACTION ITEMS</h3>

<p>TO DO List:</p>

<table border="1">
  <tr>
    <th width="80%">Action Item</th>
    <th width="20%">Volunteer</th>
  </tr>
</table>

</body>
</html>
