<!--

 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
 this work for additional information regarding copyright ownership.
 The ASF licenses this file to You under the Apache License, Version 2.0
 (the "License"); you may not use this file except in compliance with
 the License.  You may obtain a copy of the License at
 
      http://www.apache.org/licenses/LICENSE-2.0
 
 Unless required by applicable law or agreed to in writing, software
 distributed under the License is distributed on an "AS IS" BASIS,
 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.

-->

<document>
<properties>
<title>Proposal for Logging Library Package</title>
</properties>
<body>


<section name="Proposal for Logging Package">



<subsection name="(0) Rationale">

<p>There is a great need for debugging and logging information inside of
Commons components such as HTTPClient and dbcp.  However, there are many
logging APIs out there and it is difficult to choose among them.
</p>

<p>The Logging package will be an ultra-thin bridge between different logging
libraries.  Commons components may use the Logging JAR to remove
compile-time/runtime dependencies on any particular logging package,
and contributors may write Log implementations for the library of their choice.
</p>

</subsection>
<subsection name="(1) Scope of the Package">

<p>The package shall create and maintain a package that provides extremely
basic logging functionality and bridges to other, more sophisticated logging
implementations.
</p>

<p>
The package should :
<ul>
<li>Have an API which should be as simple to use as possible</li>
<li>Provide support for log4j</li>
<li>Provide pluggable support for other logging APIs</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>

</subsection>
<subsection name="(1.5) Interaction With Other Packages">

<p><em>Logging</em> relies on:
</p>

<ul>
  <li>Java Development Kit (Version 1.1 or later)</li>
  <li>Avalon Framework (compile-time dependency only unless this Log
      implementation is selected at runtime)</li>
  <li>Avalon LogKit (compile-time dependency only unless this Log
      implementation is selected at runtime)</li>
  <li>JDK 1.4 (compile-time dependency only unless this log implementation
      is selected at runtime).</li>
  <li>Log4J (compile-time dependency only unless this Log
      implementation is selected at runtime)</li>
  <li><a href="http://sourceforge.net/projects/lumberjack/">Lumberjack</a>
      (compile-time dependency only unless this Log
      implementation is selected at runtime)</li>
</ul>

</subsection>
<subsection name="(2) Required Jakarta-Commons Resources">

<ul>
<li>CVS Repository - New directory <code>logging</code> in the 
<code>jakarta-commons</code> CVS repository.</li>

<li>Initial Committers - The list is provided below. </li>

<li>Mailing List - Discussions will take place on the general
<em>dev@commons.apache.org</em> mailing list. To help list
subscribers identify messages of interest, it is suggested that the
message subject of messages about this component be prefixed with
[Logging].</li>

<li>Bugzilla - New component "Logging" under the "Commons" product
category, with appropriate version identifiers as needed.</li>

<li>Jyve FAQ - New category "commons-logging" (when available).</li>
</ul>


</subsection>
<subsection name="(4) Initial Committers">

<p>The initial committers on the Logging component shall be:</p>

<ul>
  <li>Morgan Delagrange</li>
  <li>Rodney Waldhoff</li>
  <li>Craig McClanahan</li>
</ul>

</subsection>
</section>
</body>
</document>
