ceki 01/09/05 23:27:09 Added: src/sgml manual.sgml Log: First commit of the manual. Revision Changes Path 1.1 jakarta-log4j/src/sgml/manual.sgml Index: manual.sgml =================================================================== <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook V4.1//EN"> <book lang="en"> <bookinfo> <title>log4j manual</title> <author> <firstname>Ceki</firstname> <surname>Gülcü</surname> </author> <author> <firstname>Other authors</firstname> <surname>as appropriate</surname> </author> <revhistory> <revision> <revnumber>v1.0</revnumber> <date>2001-08-15</date> <authorinitials>cgu</authorinitials> </revision> </revhistory> <abstract> <para> This document describes the log4j API, its features and design rationale. Log4j is an open source project based on the work of many authors. It allows the developer to control which log statements are output with arbitrary granularity. It is fully configurable at runtime using external configuration files. Best of all, log4j has a gentle learning curve. Beware: judging from user feedback, it is also quite addictive. </para> </abstract> </bookinfo> <chapter id="intro"> <title>Introduction</title> <para> Almost every large application includes its own logging or tracing API. In conformance with this rule, the E.U. <ulink url="http://www.semper.org">SEMPER</ulink> project decided to write its own tracing API. This was in early 1996. After countless enhancements, several incarnations and much work that API has evolved to become log4j, a popular logging package for Java. The package is distributed under the <ulink url="../LICENSE.txt">Apache Software License</ulink>, a fully-fledged open source license certified by the <ulink url="http://www.opensource.org">open source</ulink> initiative. The latest log4j version, including full-source code, class files and documentation can be found at <ulink url="http://jakarta.apache.org/log4j/"><b>http://jakarta.apache.org/log4j/</b></ulink>. </para> <para>Igor Poteryaev, an independent author, has ported log4j to the Python language. Bastiaan Bakker has initiated a C++ port. Their projects are unsurprisingly called <ulink url="http://log4p.sourceforge.net">log4p</ulink> and <ulink url="http://log4cpp.sourceforge.net">log4cpp</ulink>. </para> <para>Inserting log statements into 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 usually the case for multithreaded applications and distributed applications at large. </para> <para>Experience indicated that logging was an important component of the development cycle. It offered several advantages. It could provide precise <em>context</em> about a run of the application. Once inserted into the code, the generation of logging output required no human intervention. Moreover, log output could be saved in persistent medium to be studied at a later time. In addition to its use in the development cycle, a sufficiently rich logging package could also be viewed as an auditing tool. </para> <para>As Brian W. Kernigan and Rob Pike put it in their truly excellent book <i>"The Practice of Programming"</i> <blockquote> <literallayout> As personal choice, we tend not to use debuggers beyond getting a stack trace or the value of a variable or two. One reason is that it is easy to get lost in details of complicated data structures and control flow; we find stepping through a program less productive than thinking harder and adding output statements and self-checking code at critical places. Clicking over statements takes longer than scanning the output of judiciously-placed displays. It takes less time to decide where to put print statements than to single-step to the critical section of code, even assuming we know where that is. More important, debugging statements stay with the program; debugging sessions are transient. </literallayout> </blockquote> <para>Logging does have its drawbacks. It can slow down an application. If too verbose, it can cause scrolling blindness. To alleviate these concerns, log4j is designed to be fast and flexible. Since logging is rarely the main focus of an application, log4j API strives to be simple to understand and to use. </para> <sect1> <title>Copyright</title> <para></para> </sect1> <sect1> <title>Installing</title> <para>The latest version of log4j can be fetched from <ulink url="http://jakarta.apache.org/log4j/docs/download.html">http://jakarta.apache.org/log4j/docs/download.html</ulink>. </para> <para>Releases are available in two formats: <filename>zip<filename> and <filename>tar.gz</filename>. After unpacking the distribution, you should have the file <filename>$LOG4J_HOME/dist/lib/log4j.jar</filename> where $LOG4J_HOME is the directory where you unpacked the distribution. <caution>hello aasdf</caution> </sect1> <sect1> <title>First run</title> <para></para> </sect1> </chapter> <chapter> <title>Architecture</title> <para></para> <sect1> <title>Selecting</title> <para></para> </sect1> <sect1> <title>Directing Output</title> <para></para> </sect1> <sect1> <title>Formatting output</title> <para></para> </sect1> <sect1> <title>Object Renderers</title> <para></para> </sect1> <sect1> <title>Performance</title> <para></para> </sect1> </chapter> <chapter> <title>Configuration</title> <sect1> <title>PropertyConfigurator</title> <para></para> </sect1> <sect1> <title>DOMConfigurator</title> <para></para> </sect1> <sect1> <title>Default configuration</title> <para></para> </sect1> <sect1> <title>Filters</title> <para></para> </sect1> <sect1> <title>Error handlers</title> <para></para> </sect1> <sect1> <title>Category Factories</title> <para></para> </sect1> </chapter> <chapter> <title>Logging in servers and other Multithreaded environments</title> <sect1> <title>NDC</title> <para></para> </sect1> <sect1> <title>MDC</title> <para></para> </sect1> </chapter> <chapter> <title>Frequently Asked Questions</title> <sect1> <title>Installation requirements</title> <para></para> </sect1> <sect1> <title>Exception</title> <para></para> </sect1> </chapter> </book> --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]