<!--
  Copyright 2002,2004 The Apache Software Foundation.
  
  Licensed 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.
-->
<html>
<head>
</head>
<body>

  <p>Custom tags for generating textual logging information using
  	<a href="http://jakarta.apache.org/commons/logging.html">commons-logging</a> 
  	which will use either log4j, logkit or JDK1.4 logging
  	depending on the classpath and configuration.
  </p>
</body>
</html>
