You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4j-dev@logging.apache.org by ca...@apache.org on 2006/01/28 07:59:24 UTC

svn commit: r373095 [2/2] - in /logging/log4j/trunk/docs: ./ .cvsignore chainsaw.html codes.html contributors.html documentation.html download.html earlier.html faq.html history.html index.html install-chainsaw.html plan.html ugli.html

Added: logging/log4j/trunk/docs/faq.html
URL: http://svn.apache.org/viewcvs/logging/log4j/trunk/docs/faq.html?rev=373095&view=auto
==============================================================================
--- logging/log4j/trunk/docs/faq.html (added)
+++ logging/log4j/trunk/docs/faq.html Fri Jan 27 22:59:16 2006
@@ -0,0 +1,1898 @@
+<!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 -->
+    <!-- ====================================================================== -->
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <!-- Main Page Section -->
+    <!-- ====================================================================== -->
+    <html>
+        <head>
+            <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
+
+                                                    <meta name="author" value="Ceki Gülcü">
+            <meta name="email" value="not@disclosed">
+            
+            
+                                    
+                         
+            <link href="./css/site.css" rel="stylesheet" type="text/css"/>
+                                   
+
+            <title>Log4j project - Frequently Asked Questions about log4j</title>
+        </head>
+
+        <body bgcolor="#ffffff" text="#000000" link="#525D76">        
+           <!-- START Header table --> 
+                     <table class="banner" border="0">
+     <tr>
+       <td valign="top">
+         <a href="http://logging.apache.org/">
+           <img src="http://logging.apache.org/images/ls-logo.jpg" border="0"/>
+         </a>
+       <td align="right">
+                              	       <a href="http://logging.apache.org/log4j/docs/">
+                 <img src="./images/logo.jpg" alt="The log4j project" border="0"/>
+      	       </a>
+                               </td>
+     </tr>
+   </table>
+              <!-- END Header table --> 
+
+	   <div class="centercol">
+             <hr noshade="" size="1"/>
+		       
+                                       <center>
+
+    <h2>Frequently Asked Questions about log4j</h2>
+
+    <h3>Ceki  Gülcü, Paul Smith, Chris Taylor<br />
+
+    May 2002, last updated on September 15th, 2004</h3>
+
+  </center>
+                                                                                                                                                                                                                                              
+            
+  
+                  <br/>
+      <div class="index-faqSection">
+        Section 1. <a href="#1"> Generalities</a>
+      </div>
+
+                                                     <table class="index-question">
+              <td nowrap="true" valign="top">Question 1.1</td>	      
+              <td><a href="#1.1">What is log4j?</a></td>           
+            </table>
+                                           <table class="index-question">
+              <td nowrap="true" valign="top">Question 1.2</td>	      
+              <td><a href="#1.2">Is log4j a reliable logging system?</a></td>           
+            </table>
+                                           <table class="index-question">
+              <td nowrap="true" valign="top">Question 1.3</td>	      
+              <td><a href="#1.3">What are the prerequisites for log4j?</a></td>           
+            </table>
+                                           <table class="index-question">
+              <td nowrap="true" valign="top">Question 1.4</td>	      
+              <td><a href="#1.4">What are the features of log4j?</a></td>           
+            </table>
+                                           <table class="index-question">
+              <td nowrap="true" valign="top">Question 1.5</td>	      
+              <td><a href="#1.5">Is there example code for using log4j?</a></td>           
+            </table>
+                                           <table class="index-question">
+              <td nowrap="true" valign="top">Question 1.6</td>	      
+              <td><a href="#1.6">What documentation should I read to learn more about
+
+      log4j?</a></td>           
+            </table>
+                                           <table class="index-question">
+              <td nowrap="true" valign="top">Question 1.7</td>	      
+              <td><a href="#1.7">Is log4j thread-safe?</a></td>           
+            </table>
+                                           <table class="index-question">
+              <td nowrap="true" valign="top">Question 1.8</td>	      
+              <td><a href="#1.8">What does log output look like?</a></td>           
+            </table>
+                                           <table class="index-question">
+              <td nowrap="true" valign="top">Question 1.9</td>	      
+              <td><a href="#1.9">Why should I use log4j when JDK 1.4 already ships with a
+
+      logging API?</a></td>           
+            </table>
+                                        <br/>
+      <div class="index-faqSection">
+        Section 2. <a href="#2"> Using log4j</a>
+      </div>
+
+                                                     <table class="index-question">
+              <td nowrap="true" valign="top">Question 2.1</td>	      
+              <td><a href="#2.1">What are <em>Loggers</em>?</a></td>           
+            </table>
+                                           <table class="index-question">
+              <td nowrap="true" valign="top">Question 2.2</td>	      
+              <td><a href="#2.2">How can I change log behavior at runtime?</a></td>           
+            </table>
+                                           <table class="index-question">
+              <td nowrap="true" valign="top">Question 2.3</td>	      
+              <td><a href="#2.3">What is the fastest way of (not) logging?</a></td>           
+            </table>
+                                           <table class="index-question">
+              <td nowrap="true" valign="top">Question 2.4</td>	      
+              <td><a href="#2.4"> Are there any suggested ways for naming loggers?</a></td>           
+            </table>
+                                           <table class="index-question">
+              <td nowrap="true" valign="top">Question 2.5</td>	      
+              <td><a href="#2.5">How do I get the fully-qualified name of a class in a static block?</a></td>           
+            </table>
+                                           <table class="index-question">
+              <td nowrap="true" valign="top">Question 2.6</td>	      
+              <td><a href="#2.6">Can the log output format be customized? </a></td>           
+            </table>
+                                           <table class="index-question">
+              <td nowrap="true" valign="top">Question 2.7</td>	      
+              <td><a href="#2.7">What are the configurable options for <code>FooBarAppender</code>?</a></td>           
+            </table>
+                                           <table class="index-question">
+              <td nowrap="true" valign="top">Question 2.8</td>	      
+              <td><a href="#2.8">What is the recommended way of migrating from
+
+      java.util.logging to log4j?</a></td>           
+            </table>
+                                           <table class="index-question">
+              <td nowrap="true" valign="top">Question 2.9</td>	      
+              <td><a href="#2.9">Is it possible to direct log output to
+
+      different appenders by level? </a></td>           
+            </table>
+                                           <table class="index-question">
+              <td nowrap="true" valign="top">Question 2.10</td>	      
+              <td><a href="#2.10">What does the Windows NT Event Viewer complain about
+
+      missing descriptions for my event messages when I use the
+
+      <code>NTEventLogAppender</code>?</a></td>           
+            </table>
+                                           <table class="index-question">
+              <td nowrap="true" valign="top">Question 2.11</td>	      
+              <td><a href="#2.11">Why can't I map my logger names to the loggers that
+
+      appear in the NT Event Log when I use the
+
+      NTEventLogAppender?</a></td>           
+            </table>
+                                           <table class="index-question">
+              <td nowrap="true" valign="top">Question 2.12</td>	      
+              <td><a href="#2.12">Are there suggested approaches for logging in JSP pages?</a></td>           
+            </table>
+                                        <br/>
+      <div class="index-faqSection">
+        Section 3. <a href="#3"> Advanced questions</a>
+      </div>
+
+                                                     <table class="index-question">
+              <td nowrap="true" valign="top">Question 3.1</td>	      
+              <td><a href="#3.1">Can the outputs of multiple client request go to
+
+      different log files?</a></td>           
+            </table>
+                                           <table class="index-question">
+              <td nowrap="true" valign="top">Question 3.2</td>	      
+              <td><a href="#3.2">Logger instances seem to be create only. Why isn't
+
+      there a method to remove logger instances?</a></td>           
+            </table>
+                                           <table class="index-question">
+              <td nowrap="true" valign="top">Question 3.3</td>	      
+              <td><a href="#3.3">How do I get multiple process to log to the same file?</a></td>           
+            </table>
+                                           <table class="index-question">
+              <td nowrap="true" valign="top">Question 3.4</td>	      
+              <td><a href="#3.4">How about the timesamps of events generated by multiple
+
+      processes across multiple hosts (possibly across multiple
+
+      timezones)?
+
+      </a></td>           
+            </table>
+                                           <table class="index-question">
+              <td nowrap="true" valign="top">Question 3.5</td>	      
+              <td><a href="#3.5">Why can't log4j find my properties file in a J2EE or WAR
+
+      application?</a></td>           
+            </table>
+                                           <table class="index-question">
+              <td nowrap="true" valign="top">Question 3.6</td>	      
+              <td><a href="#3.6">Is there a way to get log4j to automatically reload a
+
+      configuration file if it changes?</a></td>           
+            </table>
+                                        <br/>
+      <div class="index-faqSection">
+        Section 4. <a href="#4"> Contributing to the project</a>
+      </div>
+
+                                                     <table class="index-question">
+              <td nowrap="true" valign="top">Question 4.1</td>	      
+              <td><a href="#4.1">Why should I donate my extensions to log4j back to the
+
+      project?
+
+      </a></td>           
+            </table>
+                                           <table class="index-question">
+              <td nowrap="true" valign="top">Question 4.2</td>	      
+              <td><a href="#4.2">What should I keep in mind when contributing code?</a></td>           
+            </table>
+                                           <table class="index-question">
+              <td nowrap="true" valign="top">Question 4.3</td>	      
+              <td><a href="#4.3">How can I contribute a new question/answer to this
+
+      document?</a></td>           
+            </table>
+                                            <hr/>
+
+  
+                  <div class="faqSection">
+        <a name="1">Section 1.</a> Generalities
+      </div>
+                                       
+
+      <p>This section contains general questions about log4j.</p>
+
+    
+                                 <div class="question">
+             <a name="1.1">1.1 What is log4j?</a>
+           </div>
+                      
+
+	<p>log4j is a tool to help the programmer output log statements to a
+
+	variety of output targets.
+
+	</p>
+
+
+
+	<p>In case of problems with an application, it is helpful to
+
+	enable logging so that the problem can be located. With log4j
+
+	it is possible to enable logging at runtime without modifying
+
+	the application binary.  The log4j package is designed so that
+
+	log statements can remain in <i>shipped</i> code without
+
+	incurring a high performance cost. It follows that the speed
+
+	of logging (or rather not logging) is capital.
+
+	</p>
+
+
+
+	<p>At the same time, log output can be so voluminous that it quickly
+
+	becomes overwhelming. One of the distinctive features of log4j is the
+
+	notion of <i>hierarchical loggers</i>. Using loggers it is
+
+	possible to selectively control which log statements are output at
+
+	arbitrary  granularity.
+
+	</p>
+
+
+
+	<p>log4j is designed with two three goals in mind:
+
+	reliability, speed and flexibility. There is a tight balance
+
+	between these requirements. We believe that log4j strikes the
+
+	right balance.
+
+	</p>
+
+      
+                                 <div class="question">
+             <a name="1.2">1.2 Is log4j a reliable logging system?</a>
+           </div>
+                      
+
+	<p>No. log4j is not reliable. It is a best-effort 
+
+	<em>fail-stop</em> logging system.
+
+	</p>
+
+
+
+	<p>By fail-stop, we mean that log4j will not throw unexpected
+
+	exceptions at run-time potentially causing your application to
+
+	crash. <b>If for any reason, log4j throws an uncaught exception,
+
+	please send an email to the <a href="mailto:log4j-user@logging.apache.org">log4j-user@logging.apache.org</a>
+
+	mailing list</b>. Uncaught exceptions are handled as serious bugs
+
+	requiring immediate attention.
+
+	</p>
+
+
+
+	<p>Moreover, log4j will not revert to System.out or System.err
+
+	when its designated output stream is not opened, is not writable or
+
+	becomes full. This avoids corrupting an otherwise working program by
+
+	flooding the user's terminal because logging fails. However, log4j
+
+	will output a single message to System.err indicating that logging can
+
+	not be performed.
+
+	</p>
+
+      
+                                 <div class="question">
+             <a name="1.3">1.3 What are the prerequisites for log4j?</a>
+           </div>
+                      
+
+	<ul>
+
+	  <li><p>Log4j versions upto and including 1.2.8 are
+
+	  compatible with JDK 1.1.x and later.  Log4j version 1.3 will
+
+	  be compatilble with JDK 1.2 and later.
+
+	  </p></li>
+
+
+
+	  <li><p>The DOMConfigurator is based on the DOM Level 1
+
+	  API. The DOMConfigurator.configure(Element) method will work
+
+	  with any XML parser that will pass it a DOM tree.
+
+	  </p>
+
+	  <p>The DOMConfigurator.configure(String filename) method and its
+
+	  variants require a JAXP compatible XML parser, for example <a href="http://xml.apache.org/">Xerces</a> or Sun's
+
+	  parser. Compiling the DOMConfigurator requires the presence of a
+
+	  JAXP parser in the classpath.
+
+	  </p>
+
+	  </li>
+
+
+
+	  <li><p>The <code>org.apache.log4j.net.SMTPAppender</code>
+
+	  relies on the <a href="http://java.sun.com/products/javamail/">JavaMail
+
+	  API</a>. It has been tested with JavaMail API version
+
+	  1.2. The JavaMail API requires the <a href="http://java.sun.com/beans/glasgow/jaf.html">JavaBeans
+
+	  Activation Framework</a> package.
+
+	  </p></li>
+
+
+
+	  <li><p>The <code>org.apache.log4j.net.JMSAppender</code>
+
+	  requires the presence of the JMS API as well as JNDI.
+
+	  </p></li>
+
+
+
+	  <li><p>log4j test code relies on the <a href="http://www.junit.org">JUnit</a> testing framework.
+
+	  </p></li>
+
+	</ul>    	
+
+      
+                                 <div class="question">
+             <a name="1.4">1.4 What are the features of log4j?</a>
+           </div>
+                      
+
+	<ul>
+
+
+
+	  <li><p>log4j is optimized for speed.</p></li>
+
+
+
+	  <li><p>log4j is based on a named logger hierarchy.</p></li>
+
+	  
+
+	  <li><p>log4j is fail-stop. However, altough it certainly
+
+	  strives to ensure delivery, log4j does not guarantee that
+
+	  each log statement will be delivered to its destination.
+
+	  </p></li>
+
+
+
+	  <li><p>log4j is thread-safe.</p></li>
+
+
+
+	  <li><p>log4j is not restricted to a predefined set of
+
+	  facilities.</p></li>
+
+
+
+	  <li><p>Logging behavior can be set at runtime using a
+
+	  configuration file. Configuration files can be property
+
+	  files or in XML format.  </p></li>
+
+
+
+	  <li><p>log4j is designed to handle Java Exceptions from the
+
+	  start.</p></li>
+
+	  
+
+	  <li><p>log4j can direct its output to a file, the console,
+
+	  an <code>java.io.OutputStream</code>,
+
+	  <code>java.io.Writer</code>, a remote server using TCP, a
+
+	  remote Unix Syslog daemon, to a remote listener using JMS,
+
+	  to the NT EventLog or even send e-mail.  </p></li>
+
+
+
+	  <li><p>log4j uses 6 levels, namely TRACE, DEBUG, INFO, WARN,
+
+	  ERROR and FATAL.  </p></li>
+
+
+
+	  <li><p>The format of the log output can be easily changed by
+
+	  extending the <code>Layout</code>
+
+          class.  </p></li>
+
+
+
+	  <li><p>The target of the log output as well as the writing
+
+	  strategy can be altered by implementations of the
+
+	  <code>Appender</code> interface.  </p></li>
+
+
+
+	  <li><p>log4j supports multiple output appenders per logger.
+
+	  </p></li>
+
+
+
+	  <li><p>log4j supports internationalization.</p></li>
+
+	</ul>
+
+      
+                                 <div class="question">
+             <a name="1.5">1.5 Is there example code for using log4j?</a>
+           </div>
+                      
+
+	<p>See the <code>examples/</code> directory.</p>
+
+      
+                                 <div class="question">
+             <a name="1.6">1.6 What documentation should I read to learn more about
+
+      log4j?</a>
+           </div>
+                      
+
+	<p>Make sure to read the <a href="manual.html">short
+
+	manual</a>. It is also recommended to you read <a href="https://www.qos.ch/shop/products/log4j/log4j-Manual.jsp">The complete
+
+	log4j manual</a> which is much more detailed and up to
+
+	date. Both documents were written by Ceki Gülcü.
+
+	</p>
+
+      
+                                 <div class="question">
+             <a name="1.7">1.7 Is log4j thread-safe?</a>
+           </div>
+                      
+
+	<p>Yes, log4j is thread-safe. Log4j components are designed to
+
+	be used in heavily multithreaded systems.</p>
+
+      
+                                 <div class="question">
+             <a name="1.8">1.8 What does log output look like?</a>
+           </div>
+                      
+
+
+
+	<p>The log output can be customized in many ways. Moreover,
+
+	one can completely override the output format by implementing
+
+	one's own Layout.
+
+	</p>
+
+
+
+	<p>Here is an example output using <em>PatternLayout</em> with
+
+	the conversion pattern <b>"%r [%t] %-5p %c{2} %x - %m%n"</b>
+
+	</p>
+
+
+
+	<pre class="screen_output">
+
+176 [main] INFO  examples.Sort - Populating an array of 2 elements in reverse order.
+
+225 [main] INFO  examples.SortAlgo - Entered the sort method.
+
+262 [main] DEBUG SortAlgo.OUTER i=1 - Outer loop.
+
+276 [main] DEBUG SortAlgo.SWAP i=1 j=0 - Swapping intArray[0] = 1 and intArray[1] = 0
+
+290 [main] DEBUG SortAlgo.OUTER i=0 - Outer loop.
+
+304 [main] INFO  SortAlgo.DUMP - Dump of interger array:
+
+317 [main] INFO  SortAlgo.DUMP - Element [0] = 0
+
+331 [main] INFO  SortAlgo.DUMP - Element [1] = 1
+
+343 [main] INFO  examples.Sort - The next log statement should be an error message.
+
+346 [main] ERROR SortAlgo.DUMP - Tried to dump an uninitialized array.
+
+        at org.log4j.examples.SortAlgo.dump(SortAlgo.java:58)
+
+        at org.log4j.examples.Sort.main(Sort.java:64)
+
+467 [main] INFO  examples.Sort - Exiting main method.
+
+	</pre>
+
+
+
+	<p>The first field is the number of milliseconds elapsed since
+
+	the start of the program. The second field is the thread
+
+	outputting the log statement. The third field is the level of
+
+	the log statement. The fourth field is the rightmost two
+
+	components of the logger making the log request. The fifth
+
+	field (just before the '-') is the <em>nested diagnostic
+
+	context</em> (NDC). Note the nested diagnostic context may be
+
+	empty as in the first two statements. The text after the '-'
+
+	is the message of the statement.
+
+	</p>
+
+      
+                                 <div class="question">
+             <a name="1.9">1.9 Why should I use log4j when JDK 1.4 already ships with a
+
+      logging API?</a>
+           </div>
+                      
+
+        <p>
+
+        Although both APIs are conceptually similar, the log4j API is
+
+        significantly more flexible and offers many more features, too
+
+        numerous to be listed here. You will discover that the
+
+        additional features and flexibility turn out to be
+
+        indispensable in the context of a mission-critical
+
+        application.
+
+        </p>
+
+
+
+        <p>The open and collaborative way in which log4j is developped
+
+        ensures that it continues to preserve and even widen its
+
+        competitive edge. At some point, input from bright developpers
+
+        from all over the world is bound to make a difference.
+
+        </p>
+
+      
+                              <div class="faqSection">
+        <a name="2">Section 2.</a> Using log4j
+      </div>
+                                       
+
+      <p>This section contains answers to questions encountered while
+
+      using log4j.</p>
+
+    
+                                 <div class="question">
+             <a name="2.1">2.1 What are <em>Loggers</em>?</a>
+           </div>
+                      
+
+	<p>Lggers lie at the heart of log4j. Loggers define a hierarchy and give
+
+	the programmer <em>run-time</em> control on which statements are
+
+	printed or not.
+
+	</p>
+
+	
+
+	<p>Loggers are assigned levels. A log statement is printed
+
+	depending on its level <em>and</em> its logger.
+
+	</p>
+
+	
+
+	<p>Make sure to read the <a href="manual.html">log4j manual</a>
+
+	for more information.
+
+	</p>	
+
+      
+                                 <div class="question">
+             <a name="2.2">2.2 How can I change log behavior at runtime?</a>
+           </div>
+                      
+
+	<p>Log behavior can be set using configuration files which are parsed
+
+	at runtime. Using configuration files the programmer can define
+
+	loggers and set their levels.
+
+	</p>
+
+	
+
+	<p>The <code>PropertyConfigurator</code> defines a particular format
+
+	of a configuration file. See also the <code>examples/Sort.java</code>
+
+	example and associated configuration files.
+
+	</p>
+
+	
+
+	<p>Configuration files can be specified in XML. See
+
+	<code>log4j.dtd</code> and
+
+	<code>org.log4j.xml.DOMConfigurator</code> for more details.
+
+	</p>
+
+	
+
+	<p>See the various Layout and Appender components for specific
+
+	configuration options.
+
+	</p>
+
+	
+
+	<p>In addition to configuration files, the user may disable all
+
+	messages belonging to a set of levels. See next item.
+
+	</p>
+
+      
+                                 <div class="question">
+             <a name="2.3">2.3 What is the fastest way of (not) logging?</a>
+           </div>
+                      
+
+
+
+	<p> For some logger <code>l</code>, writing, 
+
+	</p>
+
+	
+
+	<pre class="source">
+
+ l.debug("Entry number: " + i + " is " + String.valueOf(entry[i]));
+
+	</pre>
+
+	
+
+	<p>incurs the cost of constructing the message parameter, that is
+
+	converting both integer <code>i</code> and <code>entry[i]</code> to a
+
+	String, and concatenating intermediate strings. This, regardless of
+
+	whether the message will be logged or not.
+
+	</p>
+
+
+
+	<p>If you are worried about speed, then write</p>
+
+	<pre class="source">
+
+   if(l.isDebugEnabled()) {
+
+     l.debug("Entry number: " + i + " is " + String.valueOf(entry[i]));
+
+   }
+
+	</pre>
+
+
+
+	<p>This way you will not incur the cost of parameter
+
+	construction if debugging is disabled for logger
+
+	<code>l</code>. On the other hand, if the logger is debug
+
+	enabled, you will incur the cost of evaluating whether the
+
+	logger is enabled or not, twice: once in
+
+	<code>debugEnabled</code> and once in <code>debug</code>.
+
+	This is an insignificant overhead since evaluating a logger
+
+	takes less than 1% of the time it takes to actually log a
+
+	statement.
+
+	</p>
+
+	
+
+        <h3>Better alternative based on message patterns</h3>
+
+        <p>As of log4j version 1.3, there exists a significantly more
+
+        convenient alternative based on message patterns. Assuming
+
+        <code>entry</code> is an object, you can write:
+
+        </p>
+
+
+
+	<p class="source">
+
+          l.debug("The new entry is {}.", entry);
+
+	</p>
+
+
+
+        <p>After evaluting whether to log or not, and only if the
+
+        decision is positive, will the logger instace format the
+
+        message and replace the '{}' pair with the string value of
+
+        <code>entry</code>. In other words, the paramerized form does
+
+        not incur the cost of parameter construction in case the log
+
+        statement is disabled.
+
+        </p>
+
+        
+
+        <p>Thus, the following two lines will yield the exact same
+
+        output. However, the second form will perform at least 30
+
+        (thirty) times faster in case of a <em>disabled</em> logging
+
+        statement.
+
+        </p>
+
+        
+
+	<p class="source">
+
+          l.debug("The new entry is "+entry+"."); <br />
+
+          l.debug("The new entry is {}.", entry);
+
+	</p>
+
+        
+
+        <p>A two argument variant is also availalble. For example, you
+
+        can write:
+
+        </p>
+
+	<p class="source">
+
+          l.debug("The new entry is {}. It replaces {}.", entry, oldEntry);
+
+	</p>
+
+        
+
+     
+
+
+
+      
+                                 <div class="question">
+             <a name="2.4">2.4  Are there any suggested ways for naming loggers?</a>
+           </div>
+                      
+
+	
+
+
+
+	<p>Yes, there are.</p>
+
+
+
+	<p>You can name loggers by <strong>locality</strong>. It turns out
+
+	that instantiating a logger in each class, with the logger name
+
+	equal to the fully-qualified name of the class, is a useful and
+
+	straightforward approach of defining loggers. This approach has
+
+	many benefits:
+
+	</p>
+
+	
+
+	<ul>
+
+	  <li>It is very simple to implement.</li>
+
+	  
+
+	  <li>It is very simple to explain to new developers.</li>
+
+	  
+
+	  <li>It automatically mirrors your application's own modular design.
+
+	  </li>
+
+	  <li>It can be further refined at will.</li>
+
+	  
+
+	  <li>Printing the logger automatically gives information on the locality
+
+	  of the log statement.	  </li>
+
+	</ul>
+
+
+
+	<p>However, this is not the only way for naming loggers. A
+
+	common alternative is to name loggers by <strong>functional
+
+	areas</strong>. For example, the "database" logger, "RMI"
+
+	logger, "security" logger, or the "XML" logger.
+
+	</p>
+
+
+
+	<p>You may choose to name loggers by functionality and
+
+	subcategorize by locality, as in "DATABASE.com.foo.some.package.someClass" or
+
+	"DATABASE.com.foo.some.other.package.someOtherClass".
+
+	</p>
+
+	
+
+	<p><em>You are totally free in choosing the names of your
+
+	loggers.</em> The log4j package merely allows you to manage your
+
+	names in a hierarchy.  However, it is your responsibility to define
+
+	this hierarchy.
+
+	</p>
+
+	
+
+	<p>Note by naming loggers by locality one tends to name things by
+
+	functionality, since in most cases the locality relates closely to
+
+	functionality. 
+
+	</p>
+
+
+
+      
+                                 <div class="question">
+             <a name="2.5">2.5 How do I get the fully-qualified name of a class in a static block?</a>
+           </div>
+                      
+
+	<p>You can easily retrieve the fully-qualified name of a class in a
+
+	static block for class X, with the statement
+
+	<code>X.class.getName()</code>. Note that <code>X</code> is the class
+
+	name and not an instance.  The <code>X.class</code> statement does
+
+	<i>not</i> create a new instance of class <code>X</code>.
+
+	</p>
+
+	
+
+	<p>Here is the suggested usage template:</p>
+
+
+
+	<pre class="source">
+
+package a.b.c;
+
+
+
+public class Foo {
+
+  final static Logger logger = Logger.getLogger(Foo.class);
+
+  ... other code
+
+
+
+}
+
+	</pre>
+
+      
+                                 <div class="question">
+             <a name="2.6">2.6 Can the log output format be customized? </a>
+           </div>
+                      
+
+	<p>Yes, you can extend the <code>Layout</code> class to create
+
+	you own customized log format. Appenders can be parameterized
+
+	to use the layout of your choice.
+
+	</p>
+
+      
+                                 <div class="question">
+             <a name="2.7">2.7 What are the configurable options for <code>FooBarAppender</code>?</a>
+           </div>
+                      
+
+	<p>Log4j uses JavaBeans style configuration.</p>
+
+
+
+	<p>Thus, any setter method in <code>FooBarAppender</code>
+
+	corresponds to a configurable option. For example, in <a href="api\org\apache\log4j\RollingFileAppender.html"><code>RollingFileAppender</code></a>
+
+	the <a href="api/org/apache/log4j/RollingFileAppender.html#setMaxBackupIndex(int)"><code>setMaxBackupIndex(int
+
+	maxBackups)</code></a> method corresponds to the
+
+	<code>maxBackupIndex</code> option. The first letter of the
+
+	option can be upper case, i.e.  <code>MaxBackupIndex</code>
+
+	and <code>maxBackupIndex</code> are equivalent but not
+
+	<code>MAXBACKUPIndex</code> nor <code>mAXBackupIndex</code>.
+
+	</p>
+
+
+
+	<p>Layouts options are also defined by their setter methods. The same goes
+
+	for most other log4j components.
+
+	</p>
+
+      
+                                 <div class="question">
+             <a name="2.8">2.8 What is the recommended way of migrating from
+
+      java.util.logging to log4j?</a>
+           </div>
+                      
+
+	
+
+	<p>We suggest to just use global file search/replace.  You should be able
+
+	to replace all the "java.util.Logger" references with
+
+	"org.apache.log4j.Logger", and you should be on your way.
+
+	</p>
+
+	
+
+	<p>If you're on a Win32 platform, we recommend <a href="http://www.textpad.com/">Textpad</a>. You can use the
+
+	CTRL+SHIFT+O to open all *.java files from a directory including all
+
+	its sub-directories, and then use the search/replace function to
+
+	replace in all files, and then CTRL+SHIFT+S to save all.  Should take
+
+	about 60 seconds!  :)
+
+	</p>
+
+      
+                                 <div class="question">
+             <a name="2.9">2.9 Is it possible to direct log output to
+
+      different appenders by level? </a>
+           </div>
+                      
+
+	<p>Yes it is. Setting the <b>Threshold</b> option of any appender
+
+	extending <a href="api/org/apache/log4j/AppenderSkeleton.html">AppenderSkeleton</a>,
+
+	(most log4j appenders extend AppenderSkeleton) to filter out all log
+
+	events with <em>lower</em> level than the value of the threshold
+
+	option. 
+
+	</p>
+
+
+
+	<p>For example, setting the threshold of an appender to DEBUG
+
+	also allow INFO, WARN, ERROR and FATAL messages to log along
+
+	with DEBUG messages. This is usually acceptable as there is
+
+	little use for DEBUG messages without the surrounding INFO,
+
+	WARN, ERROR and FATAL messages. Similarly, setting the
+
+	threshold of an appender to ERROR will filter out DEBUG, INFO
+
+	and WARN messages but not ERROR or FATAL messages.
+
+	</p>
+
+
+
+	<p>This policy usually best encapsulates what the user
+
+	actually wants to do, as opposed to her mind-projected
+
+	solution.
+
+	</p>
+
+	<p>See <i>examples/sort4.lcf</i> for an example threshold
+
+	configuration.</p>
+
+
+
+	<p>If you must filter events by exact level match, then you can
+
+	attach a <a href="api/org/apache/log4j/varia/LevelMatchFilter.html">LevelMatchFilter</a>
+
+	to any appender to filter out logging events by exact level match.
+
+	</p>
+
+
+
+      
+                                 <div class="question">
+             <a name="2.10">2.10 What does the Windows NT Event Viewer complain about
+
+      missing descriptions for my event messages when I use the
+
+      <code>NTEventLogAppender</code>?</a>
+           </div>
+                      
+
+	<p>The NT Event Viewer relies on <i>message resource</i> DLLs
+
+	to properly view an event message.  The NTEventLogAppender.dll
+
+	contains these message resources, but that DLL must be copied
+
+	to %SYSTEMROOT%\SYSTEM32 for it to work properly.
+
+	</p>
+
+      
+                                 <div class="question">
+             <a name="2.11">2.11 Why can't I map my logger names to the loggers that
+
+      appear in the NT Event Log when I use the
+
+      NTEventLogAppender?</a>
+           </div>
+                      
+
+																				
+
+	<p>Unfotunately, the logger names are hardcoded within the
+
+	message resource DLL (see previous question about
+
+	NTEventLogAppender), so there isn't any easy way to override
+
+	those dynamically... in fact, I don't think it's possible to
+
+	do it, as you'd have to modify the DLL resources for every
+
+	application. Since most native applications don't use the
+
+	Logger column anyway...
+
+	</p>
+
+      
+                                 <div class="question">
+             <a name="2.12">2.12 Are there suggested approaches for logging in JSP pages?</a>
+           </div>
+                      
+
+        <p>
+
+        The suggested approach depends on your design requirements.  If you or
+
+        your organization has no constraints on the use of Java in JSP pages,
+
+        simply use log4j normally in <code>&lt;% ... %&gt;</code> statements
+
+        as indicated in the Short Manual and the rest of the documentation.
+
+        </p>
+
+        <p>
+
+        However, if your design calls for a minimum amount of Java in your JSP
+
+        pages, consider using the
+
+        <a href="http://jakarta.apache.org/taglibs/doc/log-doc/intro.html">Log Taglib</a>
+
+        from the Jakarta Taglibs project.  It provides logging JSP tags that invoke
+
+        log4j.
+
+        </p>
+
+      
+                              <div class="faqSection">
+        <a name="3">Section 3.</a> Advanced questions
+      </div>
+                                       
+
+      <p>This section contains answers to more advanced questions about log4j.</p>
+
+    
+                                 <div class="question">
+             <a name="3.1">3.1 Can the outputs of multiple client request go to
+
+      different log files?</a>
+           </div>
+                      
+
+	
+
+	<p>Many developers are confronted with the problem of
+
+	distinguishing the log output originating from the same class
+
+	but different client requests. They come up with ingenious
+
+	mechanisms to fan out the log output to different files. In
+
+	most cases, this is not the right approach.
+
+	</p>
+
+
+
+	<p>It is simpler to use a nested diagnostic context
+
+	(NDC). Typically, one would <em>NDC.push()</em> client
+
+	specific information, such as the client's hostname, ID or any
+
+	other distinguishing information when starting to handle the
+
+	client's request. Thereafter, log output will automatically
+
+	include the nested diagnostic context so that you can
+
+	distinguish logs from different client requests even if they
+
+	are output to the same file.
+
+	</p>
+
+
+
+	<p>See the <code>NDC</code> and the <code>PatternLayout</code>
+
+	classes for more information. The <code>NumberCruncher</code>
+
+	example shows how the NDC can be used to distinguish the log
+
+	output from multiple clients even if they share the same log
+
+	file.
+
+	</p>
+
+
+
+	<p>For select applications, such as virtual hosting
+
+	web-servers, the NDC solution is not sufficient. As of version
+
+	0.9.0, log4j supports multiple hierarchy trees. Thus, it is
+
+	possible to log to different targets from the same logger
+
+	depending on the current context.
+
+	</p>
+
+
+
+      
+                                 <div class="question">
+             <a name="3.2">3.2 Logger instances seem to be create only. Why isn't
+
+      there a method to remove logger instances?</a>
+           </div>
+                      
+
+	<p>It is quite nontrivial to define the semantics of a
+
+	"removed" logger escecially if it is still referenced by the
+
+	user. Future releases <em>may</em> include a remove method in
+
+	the Logger class.</p>
+
+      
+                                 <div class="question">
+             <a name="3.3">3.3 How do I get multiple process to log to the same file?</a>
+           </div>
+                      
+
+	<p>You may have each process log to a 
+
+	<a href="api/org/apache/log4j/net/SocketAppender.html"><code>SocketAppender</code></a>.  
+
+	The receiving 
+
+	<a href="api/org/apache/log4j/net/SocketServer.html"><code>SocketServer</code></a>  
+
+	(or 
+
+	<a href="api/org/apache/log4j/net/SimpleSocketServer.html"><code>SimpleSocketServer</code></a>)
+
+	can receive all the events and send them to a single
+
+	log file.
+
+	</p>
+
+      
+                                 <div class="question">
+             <a name="3.4">3.4 How about the timesamps of events generated by multiple
+
+      processes across multiple hosts (possibly across multiple
+
+      timezones)?
+
+      </a>
+           </div>
+                      
+
+	
+
+	<p>The timestamp is created when the logging event is created.
+
+	That is so say, when the <code>debug</code>,
+
+	<code>info</code>, <code>warn</code>, <code>error</code> or
+
+	<code>fatal</code> method is invoked.  Thus, the timestamp is
+
+	unaffected by the time at which event arrive at a remote
+
+	socket server.  
+
+	</p>
+
+	
+
+	<p>Timestamps are stored in UTC format inside the
+
+	event. Consequently, when displayed or written to a log file,
+
+	timestamps appear in the same timezone as the host displaying
+
+	or creating the logfile.  Note that because the clocks of
+
+	various machines may not be synchronized, there may be
+
+	timestamp inconsistencies between events generated on
+
+	different hosts.
+
+	</p>
+
+      
+                                 <div class="question">
+             <a name="3.5">3.5 Why can't log4j find my properties file in a J2EE or WAR
+
+      application?</a>
+           </div>
+                      
+
+
+
+	<p>The short answer: the log4j classes and the properties file
+
+	are not within the scope of the same classloader.
+
+	</p>
+
+
+
+	<p>The long answer (and what to do about it): J2EE or Servlet
+
+	containers utilize Java's class loading system.  Sun changed
+
+	the way classloading works with the release of Java 2.  In
+
+	Java 2, classloaders are arranged in a hierarchial
+
+	parent-child relationship.  When a child classloader needs to
+
+	find a class or a resource, it first delegates the request to
+
+	the parent.
+
+	</p>
+
+
+
+	<p>Log4j only uses the default <code>Class.forName()</code>
+
+	mechanism for loading classes.  Resources are handled
+
+	similarly.  See the documentation for
+
+	<code>java.lang.ClassLoader</code> for more details.
+
+	</p>
+
+
+
+	<p>So, if you're having problems, try loading the class or
+
+	resource yourself.  If you can't find it, neither will
+
+	log4j. ;)
+
+	</p>
+
+
+
+      
+                                 <div class="question">
+             <a name="3.6">3.6 Is there a way to get log4j to automatically reload a
+
+      configuration file if it changes?</a>
+           </div>
+                      
+
+	<p>Yes.  Both the DOMConfigurator and the PropertyConfigurator support
+
+	automatic reloading through the <code>configureAndWatch</code> method.
+
+	See the API documentation for more details.
+
+	</p>
+
+
+
+
+
+	<p>Because the <code>configureAndWatch</code> launches a
+
+	separate wathdog thread, and because there is no way to stop
+
+	this thread in log4j 1.2, the <code>configureAndWatch</code>
+
+	method is unsafe for use in J2EE envrironments where
+
+	applications are recycled.
+
+	</p>
+
+	
+
+      
+                              <div class="faqSection">
+        <a name="4">Section 4.</a> Contributing to the project
+      </div>
+                                       
+
+      <p>This section includes questions about contributing to the
+
+      project</p>
+
+    
+                                 <div class="question">
+             <a name="4.1">4.1 Why should I donate my extensions to log4j back to the
+
+      project?
+
+      </a>
+           </div>
+                      
+
+	<p>Contrary to the GNU Public License (GPL) the Apache
+
+	Software License does not make any claims over your
+
+	extensions. By extensions, we mean totally new code that
+
+	invokes existing log4j classes. <em>You are free to do
+
+	whatever you wish with your proprietary log4j extensions.</em>
+
+	In particular, you may choose to never release your extensions
+
+	to the wider public.
+
+	</p>
+
+	
+
+	<p>We are very careful not to change the log4j client API so
+
+	that newer log4j releases are backward compatible with
+
+	previous versions. We are a lot less scrupulous with the
+
+	internal log4j API. Thus, if your extension is designed to
+
+	work with log4j version <code>n</code>, then when log4j
+
+	release version <code>n+1</code> comes out, you will probably
+
+	need to adapt your proprietary extensions to the new release.
+
+	</p>
+
+
+
+	<p>Thus, you will be forced to spend precious resources in
+
+	order to keep up with log4j changes. This is commonly referred
+
+	to as the "stupid-tax."  By donating the code and making it
+
+	part of the standard distribution, you save yourself the
+
+	unnecessary maintenance work.
+
+	</p>
+
+
+
+	<p>If your extensions are useful then someone will eventually
+
+	write an extension providing the same or very similar
+
+	functionality.  Your development effort will be wasted. Unless
+
+	the proprietary log4j extension is business critical, there is
+
+	little reason for not donating your extensions back to the
+
+	project.
+
+	</p>
+
+      
+                                 <div class="question">
+             <a name="4.2">4.2 What should I keep in mind when contributing code?</a>
+           </div>
+                      
+
+	<ol>
+
+
+
+	  <li>
+
+	    <p>Write a test case for your contribution.</p>
+
+
+
+	    <p>There is nothing more irritating than finding the bugs
+
+	    in debugging (i.e. logging) code. Writing a test case
+
+	    takes some effort but is crucial for a widely used library
+
+	    such as log4j. Writing a test case will go a long way in
+
+	    earning you the respect of fellow developers. See the
+
+	    tests/ directory for exiting test cases.
+
+	    </p>
+
+	  </li>
+
+
+
+	  
+
+	  <li>
+
+	    <p>Stick to the existing indentation style even if you hate it.</p>
+
+	    
+
+	    <p>Alternating between indentation styles makes it hard to
+
+	    understand the source code. Make it a little harder on
+
+	    yourself but easier on others.
+
+	    </p>
+
+
+
+	    <p>Log4j has adopted a rather conservative approach by
+
+	    following the <a href="http://java.sun.com/docs/codeconv/">Code Conventions
+
+	    for the JavaTM Programming Language</a>. <b>We use 2 (two)
+
+	    spaces for indentation and no tabs.</b>
+
+	    </p>
+
+	  </li>
+
+
+
+	  <li>
+
+	    <p>Please do not both modify the code and change the
+
+	    indentation in a single commit.</p>
+
+	    
+
+	    <p>If you change the code and reformat it at the same time
+
+	    and then commit, the commit notification message will be
+
+	    hard to read. It will contain many diffs associated with
+
+	    the reformatting in addition to logical changes.
+
+	    </p>
+
+
+
+	    <p>If you must reformat and change the code, then perform
+
+	    each step separately. For example, reformat the code and
+
+	    commit. Following that, you can change the logic and
+
+	    commit. The two steps can be performed in the reverse
+
+	    order just as well. You can first change the logic and
+
+	    commit and only later reformat and commit.
+
+	    </p>
+
+
+
+	  </li>
+
+	  <li>
+
+	    <p>Make every effort to stick to the JDK 1.1 API.</p>
+
+	    
+
+	    <p>One of the important advantages of log4j is its
+
+	    compatibility with JDK 1.1.x.
+
+	    </p>
+
+	  </li>
+
+
+
+	  <li>
+
+	    <p>Always keep it simple, small and fast when
+
+	    possible.</p>
+
+
+
+	    <p>It's all about the application not about logging.</p>
+
+	  </li>
+
+	  
+
+	  <li>
+
+	    <p>Identify yourself as a contributor at the top of the
+
+	    relevant file.
+
+	    </p>
+
+	  </li>
+
+	  <li>
+
+	    <p>Take responsibility for your code.</p>
+
+	    
+
+	    <p>Authoring software is very much like running a marathon. It
+
+	    takes time and endurance.
+
+	    </p>
+
+	  </li>
+
+	  <li>
+
+	    <p>Did we mention sticking with the indentation style? </p>
+
+	  </li>
+
+	  <li><p>Did we mention writing test cases? </p>
+
+	  </li>
+
+	  
+
+	</ol>
+
+      
+                                 <div class="question">
+             <a name="4.3">4.3 How can I contribute a new question/answer to this
+
+      document?</a>
+           </div>
+                      
+
+	<p>Log4j uses <a href="http://jakarta.apache.org/velocity/anakia.html">velocity-anakia</a>
+
+	to generate its web-site, including this FAQ. We have devised
+
+	special macros to help us automatically generate labeled
+
+	question/answer pairs.
+
+	</p>
+
+
+
+	<p>If you are not a commiter, you can simply submit your new
+
+	question/answer pair to the log4j-dev@logging.apache.org
+
+	mailing list. The committers will take it from there.
+
+	</p>
+
+
+
+	<p>If you are a committer, then you must edit the
+
+	<em>/src/xdocs/faq.xml</em> file. The format of the file
+
+	should be self-evident. After you have made your changes, run
+
+	the command
+
+	</p>
+
+	<pre class="source">ant site</pre>
+
+
+
+	<p>After the appropriate transformation, your changes should
+
+	appear in the file <em>/docs/faq.html</em>.
+
+	</p>
+
+      
+                                                                
+
+             
+                <!-- FOOTER -->
+              <div align="center"><font color="#525D76" size="-1"><em>
+                 Copyright &#169; 1999-2006, Apache Software Foundation.<br />
+Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
+               </em></font></div>
+
+           <!-- END main table --> 
+
+           <!-- LEFT SIDE NAVIGATION -->
+             <!-- ============================================================ -->
+  <div class="leftcol">
+               <div class="menu_header">Log4j Project</div>
+              	 <div class="menu_item">        <a href="./index.html">Introduction</a>
+  </div>
+              	 <div class="menu_item">        <a href="./download.html">Download</a>
+  </div>
+              	 <div class="menu_item">        <a href="./documentation.html">Documentation</a>
+  </div>
+              	 <div class="menu_item">        <a href="./chainsaw.html">Chainsaw</a>
+  </div>
+              	 <div class="menu_item">        <a href="./plan.html">Roadmap</a>
+  </div>
+              	 <div class="menu_item">        <a href="http://wiki.apache.org/logging-log4j/Log4JProjectPages">Wiki</a>
+  </div>
+              	 <div class="menu_item">        <a href="./history.html">History</a>
+  </div>
+                  <div class="menu_header">Logging Services</div>
+              	 <div class="menu_item">        <a href="http://logging.apache.org/">Home page</a>
+  </div>
+              	 <div class="menu_item">        <a href="http://logging.apache.org/site/news.html">News</a>
+  </div>
+              	 <div class="menu_item">        <a href="http://logging.apache.org/site/mailing-lists.html">Mailing Lists</a>
+  </div>
+              	 <div class="menu_item">        <a href="http://logging.apache.org/site/bugreport.html">Bug Reporting</a>
+  </div>
+                  <div class="menu_header">Translations</div>
+              	 <div class="menu_item">        <a href="http://jakarta.apache-korea.org/log4j/index.html">Korean</a>
+  </div>
+              	 <div class="menu_item">        <a href="http://www.ingrid.org/jajakarta/log4j/">Japanese</a>
+  </div>
+             </div> 
+   
+
+        </body>
+    </html>
+<!-- end the processing -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+

Added: logging/log4j/trunk/docs/history.html
URL: http://svn.apache.org/viewcvs/logging/log4j/trunk/docs/history.html?rev=373095&view=auto
==============================================================================
--- logging/log4j/trunk/docs/history.html (added)
+++ logging/log4j/trunk/docs/history.html Fri Jan 27 22:59:16 2006
@@ -0,0 +1,145 @@
+<!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 -->
+    <!-- ====================================================================== -->
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <!-- Main Page Section -->
+    <!-- ====================================================================== -->
+    <html>
+        <head>
+            <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
+
+                                                    <meta name="author" value="Ceki Gülcü">
+            <meta name="email" value="not@disclosed">
+            
+            
+                                    
+                         
+            <link href="./css/site.css" rel="stylesheet" type="text/css"/>
+                                   
+
+            <title>Log4j project - Project history</title>
+        </head>
+
+        <body bgcolor="#ffffff" text="#000000" link="#525D76">        
+           <!-- START Header table --> 
+                     <table class="banner" border="0">
+     <tr>
+       <td valign="top">
+         <a href="http://logging.apache.org/">
+           <img src="http://logging.apache.org/images/ls-logo.jpg" border="0"/>
+         </a>
+       <td align="right">
+                              	       <a href="http://logging.apache.org/log4j/docs/">
+                 <img src="./images/logo.jpg" alt="The log4j project" border="0"/>
+      	       </a>
+                               </td>
+     </tr>
+   </table>
+              <!-- END Header table --> 
+
+	   <div class="centercol">
+             <hr noshade="" size="1"/>
+		       
+                                         <h1>Project history</strong></h1>
+                                    <p>The project's official URL is <a href="http://logging.apache.org/log4j">http://logging.apache.org/log4j</a>.
+      </p>
+                                                <p>Many thanks to all the log4j users who keep sending us input
+      and sometimes even praise for our collective effort. The first
+      ancestor of log4j was written for the E.U. sponsored <a href="http://www.semper.org">SEMPER</a> project.  N. Asokan,
+      Ceki Gülcü and Michael Steiner came up with the idea
+      of hierarchical loggers back in 1996. Their idea is still at the
+      heart of log4j. The package was considerably improved over the
+      years at the <a href="http://www.zurich.ibm.com">IBM Zurich
+      Research Laboratory</a>. However, log4j is no longer associated
+      nor supported by IBM.
+      </p>
+                                                <p>Special thanks to M. Niksch from ZRL for his assistance on
+	many large and small matters. The Apache members, Pier
+	Fumagalli and Sam Ruby in particular, have been extremely
+	helpful in easing the move to Apache.
+      </p>
+                                                <p>The log4j logo was designed and kindly donated by Cyberlab SA of Switzerland.
+      </p>
+                                             
+            
+  
+                      <hr/>
+
+  
+                            
+
+             
+                <!-- FOOTER -->
+              <div align="center"><font color="#525D76" size="-1"><em>
+                 Copyright &#169; 1999-2006, Apache Software Foundation.<br />
+Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
+               </em></font></div>
+
+           <!-- END main table --> 
+
+           <!-- LEFT SIDE NAVIGATION -->
+             <!-- ============================================================ -->
+  <div class="leftcol">
+               <div class="menu_header">Log4j Project</div>
+              	 <div class="menu_item">        <a href="./index.html">Introduction</a>
+  </div>
+              	 <div class="menu_item">        <a href="./download.html">Download</a>
+  </div>
+              	 <div class="menu_item">        <a href="./documentation.html">Documentation</a>
+  </div>
+              	 <div class="menu_item">        <a href="./chainsaw.html">Chainsaw</a>
+  </div>
+              	 <div class="menu_item">        <a href="./plan.html">Roadmap</a>
+  </div>
+              	 <div class="menu_item">        <a href="http://wiki.apache.org/logging-log4j/Log4JProjectPages">Wiki</a>
+  </div>
+              	 <div class="menu_item">        <a href="./history.html">History</a>
+  </div>
+                  <div class="menu_header">Logging Services</div>
+              	 <div class="menu_item">        <a href="http://logging.apache.org/">Home page</a>
+  </div>
+              	 <div class="menu_item">        <a href="http://logging.apache.org/site/news.html">News</a>
+  </div>
+              	 <div class="menu_item">        <a href="http://logging.apache.org/site/mailing-lists.html">Mailing Lists</a>
+  </div>
+              	 <div class="menu_item">        <a href="http://logging.apache.org/site/bugreport.html">Bug Reporting</a>
+  </div>
+                  <div class="menu_header">Translations</div>
+              	 <div class="menu_item">        <a href="http://jakarta.apache-korea.org/log4j/index.html">Korean</a>
+  </div>
+              	 <div class="menu_item">        <a href="http://www.ingrid.org/jajakarta/log4j/">Japanese</a>
+  </div>
+             </div> 
+   
+
+        </body>
+    </html>
+<!-- end the processing -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+

Added: logging/log4j/trunk/docs/index.html
URL: http://svn.apache.org/viewcvs/logging/log4j/trunk/docs/index.html?rev=373095&view=auto
==============================================================================
--- logging/log4j/trunk/docs/index.html (added)
+++ logging/log4j/trunk/docs/index.html Fri Jan 27 22:59:16 2006
@@ -0,0 +1,170 @@
+<!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 -->
+    <!-- ====================================================================== -->
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <!-- Main Page Section -->
+    <!-- ====================================================================== -->
+    <html>
+        <head>
+            <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
+
+                                                    <meta name="author" value="Ceki Gülcü">
+            <meta name="email" value="not@disclosed">
+            
+            
+                                     <meta  name="keywords"  content="java, logging, tracing, component, framework, API, log4j"  />
+ 
+                         
+            <link href="./css/site.css" rel="stylesheet" type="text/css"/>
+                                   
+
+            <title>Log4j project - Introduction</title>
+        </head>
+
+        <body bgcolor="#ffffff" text="#000000" link="#525D76">        
+           <!-- START Header table --> 
+                     <table class="banner" border="0">
+     <tr>
+       <td valign="top">
+         <a href="http://logging.apache.org/">
+           <img src="http://logging.apache.org/images/ls-logo.jpg" border="0"/>
+         </a>
+       <td align="right">
+                              	       <a href="http://logging.apache.org/log4j/docs/">
+                 <img src="./images/logo.jpg" alt="The log4j project" border="0"/>
+      	       </a>
+                               </td>
+     </tr>
+   </table>
+              <!-- END Header table --> 
+
+	   <div class="centercol">
+             <hr noshade="" size="1"/>
+		       
+                                         <h1>Introduction</strong></h1>
+                                    <p>Inserting log statements into your code is a low-tech method
+	for debugging it.  It may also be the only way because
+	debuggers are not always available or applicable.  This is
+	often the case for distributed applications.</p>
+                                                <p>On the other hand, some people argue that log statements
+	pollute source code and decrease legibility. (We believe that
+	the contrary is true).  In the Java language where a
+	preprocessor is not available, log statements increase the
+	size of the code and reduce its speed, even when logging is
+	turned off.  Given that a reasonably sized application may
+	contain thousands of log statements, speed is of particular
+	importance.</p>
+                                                <p>With log4j it is possible to enable logging at runtime
+	without modifying the application binary. The log4j package is
+	designed so that these statements can remain in shipped code
+	without incurring a heavy performance cost. Logging behavior
+	can be controlled by editing a configuration file, without
+	touching the application binary.</p>
+                                                <p>Logging equips the developer with <i>detailed context</i> for
+	application failures. On the other hand, testing provides
+	quality assurance and confidence in the application. Logging
+	and testing should not be confused. They are
+	complementary. When logging is wisely used, it can prove to be
+	an essential tool.</p>
+                                                <p>One of the distinctive features of log4j is the notion of
+	<i>inheritance</i> in loggers. Using a logger
+	<em>hierarchy</em> it is possible to control which log
+	statements are output at arbitrarily fine granularity but also
+	great ease. This helps reduce the volume of logged output and
+	minimize the cost of logging.</p>
+                                                <p>The target of the log output can be a file, an
+	<code>OutputStream</code>, a <code>java.io.Writer</code>, a
+	remote log4j server, a remote Unix Syslog daemon, or many other output targets.</p>
+                                                <p>On an AMD Duron clocked at 800Mhz running JDK 1.3.1, it costs
+	about 5 nanoseconds to determine if a logging statement should
+	be logged or not. Actual logging is also quite fast, ranging
+	from 21 microseconds using the SimpleLayout, 37
+	microseconds using the TTCCLayout.  The performance of the
+	PatternLayout is almost as good as the dedicated layouts,
+	except that it is much more flexible.</p>
+                                                <p>The package is being constantly improved thanks to input from
+	users and code contributed by authors in the community.
+      </p>
+                                             
+            
+  
+                      <hr/>
+
+  
+                            
+
+             
+                <!-- FOOTER -->
+              <div align="center"><font color="#525D76" size="-1"><em>
+                 Copyright &#169; 1999-2006, Apache Software Foundation.<br />
+Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
+               </em></font></div>
+
+           <!-- END main table --> 
+
+           <!-- LEFT SIDE NAVIGATION -->
+             <!-- ============================================================ -->
+  <div class="leftcol">
+               <div class="menu_header">Log4j Project</div>
+              	 <div class="menu_item">        <a href="./index.html">Introduction</a>
+  </div>
+              	 <div class="menu_item">        <a href="./download.html">Download</a>
+  </div>
+              	 <div class="menu_item">        <a href="./documentation.html">Documentation</a>
+  </div>
+              	 <div class="menu_item">        <a href="./chainsaw.html">Chainsaw</a>
+  </div>
+              	 <div class="menu_item">        <a href="./plan.html">Roadmap</a>
+  </div>
+              	 <div class="menu_item">        <a href="http://wiki.apache.org/logging-log4j/Log4JProjectPages">Wiki</a>
+  </div>
+              	 <div class="menu_item">        <a href="./history.html">History</a>
+  </div>
+                  <div class="menu_header">Logging Services</div>
+              	 <div class="menu_item">        <a href="http://logging.apache.org/">Home page</a>
+  </div>
+              	 <div class="menu_item">        <a href="http://logging.apache.org/site/news.html">News</a>
+  </div>
+              	 <div class="menu_item">        <a href="http://logging.apache.org/site/mailing-lists.html">Mailing Lists</a>
+  </div>
+              	 <div class="menu_item">        <a href="http://logging.apache.org/site/bugreport.html">Bug Reporting</a>
+  </div>
+                  <div class="menu_header">Translations</div>
+              	 <div class="menu_item">        <a href="http://jakarta.apache-korea.org/log4j/index.html">Korean</a>
+  </div>
+              	 <div class="menu_item">        <a href="http://www.ingrid.org/jajakarta/log4j/">Japanese</a>
+  </div>
+             </div> 
+   
+
+        </body>
+    </html>
+<!-- end the processing -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+

Added: logging/log4j/trunk/docs/install-chainsaw.html
URL: http://svn.apache.org/viewcvs/logging/log4j/trunk/docs/install-chainsaw.html?rev=373095&view=auto
==============================================================================
--- logging/log4j/trunk/docs/install-chainsaw.html (added)
+++ logging/log4j/trunk/docs/install-chainsaw.html Fri Jan 27 22:59:16 2006
@@ -0,0 +1,123 @@
+<!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 -->
+    <!-- ====================================================================== -->
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <!-- Main Page Section -->
+    <!-- ====================================================================== -->
+    <html>
+        <head>
+            <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
+
+                        
+            
+                                    
+                         
+            <link href="./css/site.css" rel="stylesheet" type="text/css"/>
+                                   
+
+            <title>Log4j project - $properties.getChild("title").getText()</title>
+        </head>
+
+        <body bgcolor="#ffffff" text="#000000" link="#525D76">        
+           <!-- START Header table --> 
+                     <table class="banner" border="0">
+     <tr>
+       <td valign="top">
+         <a href="http://logging.apache.org/">
+           <img src="http://logging.apache.org/images/ls-logo.jpg" border="0"/>
+         </a>
+       <td align="right">
+                              	       <a href="http://logging.apache.org/log4j/docs/">
+                 <img src="./images/logo.jpg" alt="The log4j project" border="0"/>
+      	       </a>
+                               </td>
+     </tr>
+   </table>
+              <!-- END Header table --> 
+
+	   <div class="centercol">
+             <hr noshade="" size="1"/>
+		       
+           
+            
+  
+                <hr/>
+
+  
+                
+
+             
+                <!-- FOOTER -->
+              <div align="center"><font color="#525D76" size="-1"><em>
+                 Copyright &#169; 1999-2006, Apache Software Foundation.<br />
+Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
+               </em></font></div>
+
+           <!-- END main table --> 
+
+           <!-- LEFT SIDE NAVIGATION -->
+             <!-- ============================================================ -->
+  <div class="leftcol">
+               <div class="menu_header">Log4j Project</div>
+              	 <div class="menu_item">        <a href="./index.html">Introduction</a>
+  </div>
+              	 <div class="menu_item">        <a href="./download.html">Download</a>
+  </div>
+              	 <div class="menu_item">        <a href="./documentation.html">Documentation</a>
+  </div>
+              	 <div class="menu_item">        <a href="./chainsaw.html">Chainsaw</a>
+  </div>
+              	 <div class="menu_item">        <a href="./plan.html">Roadmap</a>
+  </div>
+              	 <div class="menu_item">        <a href="http://wiki.apache.org/logging-log4j/Log4JProjectPages">Wiki</a>
+  </div>
+              	 <div class="menu_item">        <a href="./history.html">History</a>
+  </div>
+                  <div class="menu_header">Logging Services</div>
+              	 <div class="menu_item">        <a href="http://logging.apache.org/">Home page</a>
+  </div>
+              	 <div class="menu_item">        <a href="http://logging.apache.org/site/news.html">News</a>
+  </div>
+              	 <div class="menu_item">        <a href="http://logging.apache.org/site/mailing-lists.html">Mailing Lists</a>
+  </div>
+              	 <div class="menu_item">        <a href="http://logging.apache.org/site/bugreport.html">Bug Reporting</a>
+  </div>
+                  <div class="menu_header">Translations</div>
+              	 <div class="menu_item">        <a href="http://jakarta.apache-korea.org/log4j/index.html">Korean</a>
+  </div>
+              	 <div class="menu_item">        <a href="http://www.ingrid.org/jajakarta/log4j/">Japanese</a>
+  </div>
+             </div> 
+   
+
+        </body>
+    </html>
+<!-- end the processing -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+

Added: logging/log4j/trunk/docs/plan.html
URL: http://svn.apache.org/viewcvs/logging/log4j/trunk/docs/plan.html?rev=373095&view=auto
==============================================================================
--- logging/log4j/trunk/docs/plan.html (added)
+++ logging/log4j/trunk/docs/plan.html Fri Jan 27 22:59:16 2006
@@ -0,0 +1,386 @@
+<!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 -->
+    <!-- ====================================================================== -->
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <!-- Main Page Section -->
+    <!-- ====================================================================== -->
+    <html>
+        <head>
+            <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
+
+                                                    <meta name="author" value="Ceki Gülcü">
+            <meta name="email" value="not@disclosed">
+                                        <meta name="author" value="Mark Womack">
+            <meta name="email" value="not@disclosed">
+            
+            
+                                    
+                         
+            <link href="./css/site.css" rel="stylesheet" type="text/css"/>
+                                   
+
+            <title>Log4j project - Release roadmap for log4j</title>
+        </head>
+
+        <body bgcolor="#ffffff" text="#000000" link="#525D76">        
+           <!-- START Header table --> 
+                     <table class="banner" border="0">
+     <tr>
+       <td valign="top">
+         <a href="http://logging.apache.org/">
+           <img src="http://logging.apache.org/images/ls-logo.jpg" border="0"/>
+         </a>
+       <td align="right">
+                              	       <a href="http://logging.apache.org/log4j/docs/">
+                 <img src="./images/logo.jpg" alt="The log4j project" border="0"/>
+      	       </a>
+                               </td>
+     </tr>
+   </table>
+              <!-- END Header table --> 
+
+	   <div class="centercol">
+             <hr noshade="" size="1"/>
+		       
+                                         <h1>The Roadmap</strong></h1>
+                                    <p>The log4j committers have adopted a roadmap for future releases
+      of log4j.  This page documents that roadmap and gives you an idea of what
+      to expect from future versions and timeframes for release.
+      </p>
+                                                <p>Our users keep inventing better ways and adding new
+      requirements. The downside is that our todo list keeps
+      growing. The upside is that there is plenty of work to go
+      around. If you are interested in participating, send an email
+      on the log4j-dev@ mailing list stating your interest. You'll
+      be promptly enrolled.  We're always looking for help!  Don't be
+      put off if in the "Volunteer" column already has a person
+      listed. Programming is fun, especially if it is done in a
+      team.
+      </p>
+                                                                           <h1>Release 1.2.X</strong></h1>
+                                    <p>Expected timeframe: None</p>
+                                                <p>No more releases on the 1.2.X codebase are currently planned.  Efforts
+      will now be focused on getting the 1.3 version shipped. However, if a 
+      critical bug fix is needed, another version will be released.
+      </p>
+                                                                           <h1>Release 1.3</strong></h1>
+                                    <p>Expected timeframe: mid 2006</p>
+                                                <p>The work for version 1.3 has been ongoing for a long time now, and it
+      is time to button it up and let others take it for a ride.  Reviewing,
+      stablizing, and testing the 1.3 code for release is the major goal for
+      the log4j committers for this year.
+      </p>
+                                                <p>Version 1.3 is going to contain some very extensive changes and new
+      features.  You should expect a number of api changes.  Early release
+      alpha versions have been available for a while, and the releases will be
+      accelerating as the committers review and cleanup the current code base
+      for release.  As part of those releases, the committers plan to include
+      jDiff reports that will clearly outline the changes and additions to the
+      log4j code since the most recent 1.2.X release.  This should help you in
+      seeing what might need to be reviewed or fixed in your own code related
+      to log4j.
+      </p>
+                                                <p>Below is a table from previous documentation about the 1.3 work plan
+      and it is somewhat out of date.  The committers will be updating this page
+      with more and better documentation about what has changed, what has been
+      reviewed, and what tasks remain as we work toward the 1.3 release.
+      </p>
+                                                <table class="ls" cellpadding="3" cellspacing="2">
+	
+	<tr>
+	  <th>Label</th>
+	  <th>Comment</th>
+	  <th>Volunteer</th>
+	  <th>Status</th>
+	</tr>
+	
+	<tr bgcolor="DDDDDD">
+	  <td><b>test cases</b></td>
+	  
+	  <td>
+	    <p>Writing test cases is not the most sexy part of
+	      software development but it is one of the most
+	      important.  Automated test cases allow us to catch bugs
+	      as early is possible.  It is strongly recommended to add
+	      a new test case with each new feature or component.</p>
+
+	    <p>Existing <em>Perl</em> language based test cases have been 
+			migrated to junit (all-Java)based test
+	      cases.  The new tests are placed under the
+	      <code>tests/</code> directory.  It should be thus
+	      possible for participants in the project to understand
+	      the stucture of our tests and add tests for their
+	      components.
+	    </p>
+	  </td>
+	  
+	  <td>All committers</td>
+	  <td>ongoing effort</td>	  
+	</tr>
+
+	<tr>
+	  <td>Extensible XML configuration files</td>
+	  
+	  <td>
+	     <p>The DOMConfigurator is complex and not very
+	      flexible. It can only deal with elements that the
+	      developer knew about at compilation time. This has been
+	      an important drawback in the design of several appenders
+	      such as the the SMTPAppender and the
+	      RollingFileAppenders and its variants.  These appenders
+	      need to delegate certain task to sub-components which
+	      are configured separately.
+	    </p>
+
+	    <p>The new JoranConfigurator being created by Ceki Gülcü will be based on
+	    a new 'module' know as Joran, which can convert XML files into other
+      objects based on rules.  You can read more abouth Joran <b><u>
+      <a href="http://www.qos.ch/logging/JoranConfigurator.html">here</a>
+      </u></b>
+	    </p>	      
+	  </td>
+	  <td>Ceki Gülcü</td>	  
+	  <td>Significantly progressed</td>
+	</tr>
+
+	<tr>
+	  <td>Log4j Domains</td>
+	  
+	  <td>
+	    <p>This is a very powerful and innovative concept that
+	    extends the notion of hierarchical loggers. It will also
+	    allow dynamic logging with pin-point accuracy. It was
+	    first suggested to me by Scott Stark of <a href="http://www.jboss.org">JBoss</a> fame.
+	    </p>
+	  </td>
+	  <td>Ceki Gülcü</td>	  
+	  <td>design board</td>
+	</tr>
+
+	<tr>
+	  <td>Multiple implementations of Logger</td>
+	  
+	  <td>
+	    <p>Based on <code>RepositorySelectors</code> introduced in
+	      log4j 1.2, the user will be able to replace the
+	      <code>Logger</code> implementation. Several
+	      implementations will be provided offering different
+	      properties and functionality although none of the
+	      implementations will add new public methods.
+	    </p>
+	  </td>
+
+
+	  <td>?</td>	  
+	  <td>vaporware</td>
+	</tr>
+	<tr>
+	  <td>Plugins/Receivers</td>
+	  
+	  <td>
+	    <p>A Plugin framework has been designed and implemented.</p>
+	    <p>All of the currently developed plugins are "Receivers", which can be
+      thought of as the reverse of an appender; something
+	    that <b>accepts</b> LoggingEvents from some external source.
+	    </p>
+	    <p>This has proven particulaly useful with the log4j ports, with the
+      addition of the XML-based Receivers able to accept
+	    LoggingEvents generated from other languages (see "Overture to other
+      programming languages" below)
+	    </p>
+
+	  </td>
+	  <td>All</td>	  
+	  <td>Significantly progressed</td>
+	</tr>
+
+	<tr>
+	  <td>Improvements to Chainsaw</td>
+	  
+	  <td>
+	    <p><a href="chainsaw.html">Chainsaw v2</a> development has now progressed 
+      to the point where the main developers of it
+	    and many other members of the logging community are using it daily.  It's 
+      still pre-alpha but only
+	    because we keep thinking up things to add. 
+	    </p>
+	    
+	  </td>
+	  <td>Scott Deboy and Paul Smith</td>	  
+	  <td>Significantly progressed </td>
+	</tr>
+
+	<tr>
+	  <td>Custom conversion characters in PatternLayout</td>
+	  <td>Users often want to add new conversions characters or
+	  override the existing ones. This should be made easy using
+	  new configuration directives. This feature would use the
+	  extensions to XML configuration language mentioned
+	  above.</td>
+
+	  <td>Ceki Gülcü</td> 
+	  <td>Completed, still testing</td>
+	</tr>
+	
+	<tr>
+	  <td>Overture to other programming languages</td>
+
+	  <td><p>It is higly desriable to allow log4j ports in other languages 
+	    to access log4j services in a language independent way. </p>
+	  
+	  <p>The use of a standard XML format to represent a LoggingEvent has been 
+    established and many of the related logging projects from 
+	  non-Java languages have begun to support it.   In fact, a number of the 
+    log4j ports have volunteered to join Apache!</p>
+	  
+	  <p>Scott Deboy has completed work to create a fex XML-based Receiver
+	  classes that can accept logging events from an external source, and 
+    'import' them into the local log4j environment.  </p> </td> 
+
+	  <td>Ceki Gülcü, Scott Deboy</td>
+	  <td>Significantly Progressed (if not completed)</td>
+	</tr>
+
+	<tr>
+	  <td>Strategy based rollovers</td>
+	  
+	  <td>
+	    <p>Contrary to our own DailyRollingFileAppender, Avalon's
+	      logkit has a nice and clean implementation for rolling
+	      files. See the
+	      <code>org.apache.log.output.io.rotate</code> package for
+	      exact details.
+	    </p>
+	    
+	    <p>Their implementation is based on strategies which are
+	    sub-components of appender. We will be able to configure
+	    such sub-components with the new XML configuration
+	    scripts.
+	    </p>
+	  </td>
+	  <td>Ceki Gülcü</td>	  
+	  <td>Significantly Progressed</td>
+	</tr>
+
+
+
+	<tr>
+	  <td>Redesign of configure and watch architecture in
+	  configurators</td>
+	  
+	  <td>This is a very useful feature and the current architecture is not 
+    very good.
+	    
+	    <p>Contributions have been received by Mark Womack and others.</p>
+	    
+	    <p>See
+	      <pre>
+     http://www.mail-archive.com/log4j-dev@jakarta.apache.org/msg01390.html
+     http://www.mail-archive.com/log4j-user@jakarta.apache.org/msg00666.html
+     http://marc.theaimsgroup.com/?t=101010070500002&amp;r=1&amp;w=2
+              </pre>
+	    </p>
+	  </td>
+	  <td>Mark Womack</td>	  
+	  <td>initial implementation</td>
+	</tr>
+
+	<tr>
+	  <td>Performance improvements to LoggingEvent serialization</td>
+	  
+	  <td>
+	    <p>Ole Dalgaard has shown that by implementing the
+	      java.io.Externalizable interface instead of
+	      java.io.Serializable in the LoggingEvent class, the
+	      speed of serialiazation is increased by a factor of 4 or
+	      more.
+	    </p>
+	    
+	  </td>
+	  <td>Ole Dalgaard?</td>	  
+	  <td>initial implementation</td>
+	</tr>
+      </table>
+                                             
+            
+  
+                                  <hr/>
+
+  
+                                                    
+
+             
+                <!-- FOOTER -->
+              <div align="center"><font color="#525D76" size="-1"><em>
+                 Copyright &#169; 1999-2006, Apache Software Foundation.<br />
+Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
+               </em></font></div>
+
+           <!-- END main table --> 
+
+           <!-- LEFT SIDE NAVIGATION -->
+             <!-- ============================================================ -->
+  <div class="leftcol">
+               <div class="menu_header">Log4j Project</div>
+              	 <div class="menu_item">        <a href="./index.html">Introduction</a>
+  </div>
+              	 <div class="menu_item">        <a href="./download.html">Download</a>
+  </div>
+              	 <div class="menu_item">        <a href="./documentation.html">Documentation</a>
+  </div>
+              	 <div class="menu_item">        <a href="./chainsaw.html">Chainsaw</a>
+  </div>
+              	 <div class="menu_item">        <a href="./plan.html">Roadmap</a>
+  </div>
+              	 <div class="menu_item">        <a href="http://wiki.apache.org/logging-log4j/Log4JProjectPages">Wiki</a>
+  </div>
+              	 <div class="menu_item">        <a href="./history.html">History</a>
+  </div>
+                  <div class="menu_header">Logging Services</div>
+              	 <div class="menu_item">        <a href="http://logging.apache.org/">Home page</a>
+  </div>
+              	 <div class="menu_item">        <a href="http://logging.apache.org/site/news.html">News</a>
+  </div>
+              	 <div class="menu_item">        <a href="http://logging.apache.org/site/mailing-lists.html">Mailing Lists</a>
+  </div>
+              	 <div class="menu_item">        <a href="http://logging.apache.org/site/bugreport.html">Bug Reporting</a>
+  </div>
+                  <div class="menu_header">Translations</div>
+              	 <div class="menu_item">        <a href="http://jakarta.apache-korea.org/log4j/index.html">Korean</a>
+  </div>
+              	 <div class="menu_item">        <a href="http://www.ingrid.org/jajakarta/log4j/">Japanese</a>
+  </div>
+             </div> 
+   
+
+        </body>
+    </html>
+<!-- end the processing -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+

Added: logging/log4j/trunk/docs/ugli.html
URL: http://svn.apache.org/viewcvs/logging/log4j/trunk/docs/ugli.html?rev=373095&view=auto
==============================================================================
--- logging/log4j/trunk/docs/ugli.html (added)
+++ logging/log4j/trunk/docs/ugli.html Fri Jan 27 22:59:16 2006
@@ -0,0 +1,128 @@
+<!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 -->
+    <!-- ====================================================================== -->
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <!-- Main Page Section -->
+    <!-- ====================================================================== -->
+    <html>
+        <head>
+            <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
+
+                                                    <meta name="author" value="Ceki Gülcü">
+            <meta name="email" value="not@disclosed">
+            
+            
+                                    
+                         
+            <link href="./css/site.css" rel="stylesheet" type="text/css"/>
+                                   
+
+            <title>Log4j project - Universal and Generic Logging Interface (UGLI)</title>
+        </head>
+
+        <body bgcolor="#ffffff" text="#000000" link="#525D76">        
+           <!-- START Header table --> 
+                     <table class="banner" border="0">
+     <tr>
+       <td valign="top">
+         <a href="http://logging.apache.org/">
+           <img src="http://logging.apache.org/images/ls-logo.jpg" border="0"/>
+         </a>
+       <td align="right">
+                              	       <a href="http://logging.apache.org/log4j/docs/">
+                 <img src="./images/logo.jpg" alt="The log4j project" border="0"/>
+      	       </a>
+                               </td>
+     </tr>
+   </table>
+              <!-- END Header table --> 
+
+	   <div class="centercol">
+             <hr noshade="" size="1"/>
+		       
+                                       <h1>Universal and Generic Logging Interface (UGLI)</h1>
+                                                      <p>The Universal and Generic Logging Interface effort has been
+      renamed as SLF4J and moved to <a href="http://www.slf4j.org">slf4j.org</a>.</p>
+                          
+            
+  
+                            <hr/>
+
+  
+                                        
+
+             
+                <!-- FOOTER -->
+              <div align="center"><font color="#525D76" size="-1"><em>
+                 Copyright &#169; 1999-2006, Apache Software Foundation.<br />
+Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
+               </em></font></div>
+
+           <!-- END main table --> 
+
+           <!-- LEFT SIDE NAVIGATION -->
+             <!-- ============================================================ -->
+  <div class="leftcol">
+               <div class="menu_header">Log4j Project</div>
+              	 <div class="menu_item">        <a href="./index.html">Introduction</a>
+  </div>
+              	 <div class="menu_item">        <a href="./download.html">Download</a>
+  </div>
+              	 <div class="menu_item">        <a href="./documentation.html">Documentation</a>
+  </div>
+              	 <div class="menu_item">        <a href="./chainsaw.html">Chainsaw</a>
+  </div>
+              	 <div class="menu_item">        <a href="./plan.html">Roadmap</a>
+  </div>
+              	 <div class="menu_item">        <a href="http://wiki.apache.org/logging-log4j/Log4JProjectPages">Wiki</a>
+  </div>
+              	 <div class="menu_item">        <a href="./history.html">History</a>
+  </div>
+                  <div class="menu_header">Logging Services</div>
+              	 <div class="menu_item">        <a href="http://logging.apache.org/">Home page</a>
+  </div>
+              	 <div class="menu_item">        <a href="http://logging.apache.org/site/news.html">News</a>
+  </div>
+              	 <div class="menu_item">        <a href="http://logging.apache.org/site/mailing-lists.html">Mailing Lists</a>
+  </div>
+              	 <div class="menu_item">        <a href="http://logging.apache.org/site/bugreport.html">Bug Reporting</a>
+  </div>
+                  <div class="menu_header">Translations</div>
+              	 <div class="menu_item">        <a href="http://jakarta.apache-korea.org/log4j/index.html">Korean</a>
+  </div>
+              	 <div class="menu_item">        <a href="http://www.ingrid.org/jajakarta/log4j/">Japanese</a>
+  </div>
+             </div> 
+   
+
+        </body>
+    </html>
+<!-- end the processing -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+



---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-dev-unsubscribe@logging.apache.org
For additional commands, e-mail: log4j-dev-help@logging.apache.org