You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4j-cvs@jakarta.apache.org by ce...@apache.org on 2001/09/27 11:01:21 UTC

cvs commit: jakarta-log4j/src/docbook architecture.xml intro.xml

ceki        01/09/27 02:01:21

  Modified:    src/docbook architecture.xml intro.xml
  Log:
  
  
  Revision  Changes    Path
  1.9       +61 -49    jakarta-log4j/src/docbook/architecture.xml
  
  Index: architecture.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-log4j/src/docbook/architecture.xml,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- architecture.xml	2001/09/19 22:09:10	1.8
  +++ architecture.xml	2001/09/27 09:01:21	1.9
  @@ -1,12 +1,18 @@
     <chapter>
     <title>Logger, Appenders and Layouts</title>
  -    
  +  
  +  <para>The previous chapter presented a very simple usage case for
  +    log4j. This chapter discusses the log4j architecture and the rules
  +    governing its components. 
  +  </para>
  +
  +  
     <para>Log4j has three main components: <emphasis>loggers</emphasis>,
       <emphasis>appenders</emphasis> and
       <emphasis>layouts</emphasis>. These three types of components work
       together to enable developers to log messages according to their
       level and to control at runtime how these messages are formatted
  -    and where they are reported.
  +    and where they are written.
     </para>
   
     <sect1>
  @@ -31,7 +37,7 @@
       
   	
       <para>Loggers are named entities. Logger names are
  -      case-sensitive and they follow the hierarchical naming rule:
  +      case-sensitive and they follow the >Named Hierarchy Rule:
       </para>
       
       <para>
  @@ -87,7 +93,7 @@
       <para>
   	
         <programlisting>
  -	  package org.apache.log4j;
  +        package org.apache.log4j;
     
   	public <emphasis role="strong">Logger</emphasis> class {
     
  @@ -125,10 +131,11 @@
         on.
       </para>
       
  -    <para>The <emphasis>effective level</emphasis> of logger is
  -      given by its assigned level. In case the logger has not been
  -      assigned a level, then it inherits the level of its closest
  -      ancestor with an assigned priority. More formally:
  +    <para>The <emphasis>effective level</emphasis> of a logger is
  +      given by its assigned level, if it is assigned one. Otherwise, if
  +      the logger has not been assigned a level, then it inherits the
  +      level of its closest ancestor with an assigned priority. More
  +      formally,
       </para>
         
   
  @@ -157,7 +164,7 @@
       
       <para>
         <table>
  -	<title>Example 1</title>
  +	<title>Level Inheritance - Example 1</title>
   	<tgroup cols="3" align="left">
   	  <thead>
   	    <row>
  @@ -203,7 +210,7 @@
   
       <para>
         <table>
  -	<title>Example 2</title>
  +	<title>Level Inheritance - Example 2</title>
   	<tgroup cols="3" align="left">
   	  <thead>
   	    <row>
  @@ -244,7 +251,7 @@
       
       <para>
         <table>
  -	<title>Example 3</title>
  +	<title>Level Inheritance - Example 3</title>
   	<tgroup cols="3"  align="left">
   	  <thead>
   	    <row>
  @@ -279,14 +286,14 @@
       
       <para>In example 3, the loggers <varname>root</varname>,
         <varname>X</varname> and <varname>X.Y.Z</varname> are assigned
  -      the priorities <varname>INFO</varname>, <varname>DEBUG</varname>
  +      the levels <varname>INFO</varname>, <varname>DEBUG</varname>
         and <varname>WARN</varname> respectively. The logger
         <varname>X.Y</varname> inherits its level value
         <varname>DEBUG</varname> from its parent <varname>X</varname>.
       </para>
       
       <table>
  -      <title>Example 4</title>
  +      <title>Level Inheritance - Example 4</title>
         <tgroup cols="3">
   	<thead>
   	  <row>
  @@ -320,7 +327,7 @@
       </table>
       
       <para>In example 4, the loggers <varname>root</varname> and
  -      <varname>X</varname> and are assigned the priorities
  +      <varname>X</varname> and are assigned the levels
         <varname>Proot</varname> and <varname>DEBUG</varname>
         respectively. The loggers <varname>X.Y</varname> and
         <varname>X.Y.Z</varname> inherits their level (ERROR) from
  @@ -349,18 +356,18 @@
       
       
       <para>By definition, the printing method determines the level of
  -      a logging request. For example, if <varname>l</varname> is a
  +      a logging request. For example, if <varname>x</varname> is a
         logger instance, then the statement
  -      <function>l.info("..")</function> is a logging request of
  -      priority INFO.
  +      <function>x.info("..")</function> is a logging request of
  +      priority <emphasis>info</emphasis>.
       </para>
       
  -    <para>A logging request is said to be
  -      <emphasis>enabled</emphasis> if its level is higher than or
  -      equal to the level of its logger. Otherwise, the request is
  -      said to be <emphasis>disabled</emphasis>. A logger without an
  -      assigned level will inherit one from the hierarchy. This rule
  -      is summarized below.
  +    <para>A logging request is said to be <emphasis>enabled</emphasis>
  +      if its level is higher than or equal to the effective level of
  +      its logger. Otherwise, the request is said to be
  +      <emphasis>disabled</emphasis>. Remember that a logger without an
  +      assigned level will inherit one from the hierarchy. This rule is
  +      summarized below.
       </para>
       
       
  @@ -370,9 +377,9 @@
   	  <term><emphasis role="strong">Basic Selection Rule</emphasis></term>
   	  
   	  <listitem>
  -	    <para>A log request of priority
  +	    <para>A log request of level
   	      <emphasis>p</emphasis> in a logger with
  -	      inherited priority <emphasis>q</emphasis>, is
  +	      effective level <emphasis>q</emphasis>, is
   	      enabled if <emphasis> p &gt;= q</emphasis>.
   	    </para>
   	  </listitem>
  @@ -381,9 +388,9 @@
       </para>
   
         <para >This rule is at the heart of log4j. It is based on the
  -	ordering of levels.  For the standard levels, we the
  -	following order <varname>DEBUG &lt; INFO &lt; WARN &lt;
  -	  ERROR &lt; FATAL</varname>.
  +	ordering of levels.  For the standard levels, we have the
  +	following ordering <varname>DEBUG &lt; INFO &lt; WARN &lt; ERROR
  +	&lt; FATAL</varname>.
         </para>
         
         <para>Here is this rule in action.</para>
  @@ -394,8 +401,7 @@
      Logger  cat = Logger.getLogger("com.foo");
   
      // Now set its priority. Normally you do not need to set the 
  -   // priority of a logger progamitcally. This is usually done 
  -   // in configuration files.
  +   // level of a logger programatically but rather in a configuration file.
      cat.setLevel(Level.INFO);
   
      Logger barcat = Logger.getLogger("com.foo.Bar");
  @@ -404,7 +410,7 @@
      cat.warn("Low fuel level.");
     
      // This request is disabled, because DEBUG &lt; INFO.
  -  cat.debug("Starting search for nearest gas station."); 
  +   cat.debug("Starting search for nearest gas station."); 
    
      // The logger instance barcat, named "com.foo.Bar",
      // will inherit its priority from the logger named 
  @@ -417,39 +423,45 @@
   	</programlisting>
         </para>
   
  +    <para>You really should take the time to understand the basic
  +    selection rule.</para>
  +    
  +    <sect2>
  +      <title>Once only creation</title>
  +
         <para>Calling the <varname>getLogger</varname> method
   	with the same name will always return a reference to
   	the exact same logger object.
         </para>
   
  -      <para>For example, in 
  -	
  -	<programlisting>
  -      Logger x = Logger.getLogger("wombat");
  -      Logger y = Logger.getLogger("wombat");
  -	</programlisting>
  +      <para>For example, in</para>
  +
  +    <para><programlisting>
  +   Logger x = Logger.getLogger("wombat");
  +   Logger y = Logger.getLogger("wombat");</programlisting></para>
   
  +      <para>
   	<varname>x</varname> and <varname>y</varname> refer to
   	<emphasis>exactly</emphasis> the same logger object.
         </para>
  -
  +    
         <para>Thus, it is possible to configure a logger and then to
   	retrieve the same instance somewhere else in the code without
  -	passing around references. In contrast to biological
  -	parenthood, where parents always preceed their children, log4j
  -	loggers can be created and configured in any order. In
  -	particular, a "parent" logger will find and link to its
  -	descendants even if it is instantiated after them.
  +	passing around references. In contrast to biological parenthood,
  +	where parents always preceed their children, log4j loggers can
  +	be created and configured in any order. In particular, a
  +	"parent" logger will find and link to its descendants even if it
  +	is instantiated after them.
         </para>
  -
  +      
         <para>Configuration of the log4j environment is typically done
   	at application initialization. The preferred way is by reading
   	a configuration file. This approach will be discussed in <xref
  -	linkend="configuration"/>.
  +	  linkend="configuration"/>.
         </para>
   
         <para>Log4j makes it easy to name loggers by <emphasis>software
  -	component</emphasis>.  This can be accomplished by statically
  +	  component</emphasis>.  This can be accomplished by statically
   	instantiating a logger in each class, with the logger name
   	equal to the fully qualified name of the class. This is a
   	useful and straightforward method of defining loggers. As the
  @@ -461,10 +473,10 @@
   	logger as she wishes.
         </para>
   
  -    <para>Nevertheless, naming loggers after the class where they
  +      <para>Nevertheless, naming loggers after the class where they
   	are located seems to be the best strategy known so far.</para>
  -
  -    </sect1>
  +    </sect2>
  +  </sect1>
   
       <sect1>
         <title>Appenders and Layouts</title>
  
  
  
  1.8       +17 -8     jakarta-log4j/src/docbook/intro.xml
  
  Index: intro.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-log4j/src/docbook/intro.xml,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- intro.xml	2001/09/26 08:37:42	1.7
  +++ intro.xml	2001/09/27 09:01:21	1.8
  @@ -81,6 +81,17 @@
         form but not in printed form..  Translations or modifications of
         this document require prior written permission.
       </para>
  +
  +    <para>THE DOCUMENT IS PROVIDED AS IS, WITHOUT WARRANTY OF ANY
  +    KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
  +    WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
  +    AND NONINFRINGEMENT. IN NO EVENT SHALL CEKI G&Uuml;LC&Uuml; OR ANY OTHER
  +    CONTRIBUTOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
  +    WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
  +    OUT OF OR IN CONNECTION WITH THE DOCUMENT OR THE USE OR OTHER
  +    DEALINGS IN THE DOCUMENT.
  +    </para>
  +
     </sect1>
     
     <!-- Section ----------------------------------------------------- -->
  @@ -113,8 +124,6 @@
         in your <varname>CLASSPATH</varname>, we can try to write a small
         program that uses log4j.</para>
       
  -    <para>Please also see <xref linkend="faq-threadSafe"/>.</para>
  -    
       <example id="MyApp1">
         <title>First attempt</title>
         <programlisting linenumbering="numbered">  
  @@ -136,13 +145,10 @@
         <para>
   	Running this example will not produce any logging output but the
   	following warning.
  -	<literallayout>
  -<computeroutput>
  -  log4j:ERROR No appenders could be found for logger (chapter1.MyApp1).
  -  log4j:ERROR Please initialize the log4j system properly.
  -</computeroutput>
  -	</literallayout>
         </para>
  +      <screen>
  +log4j:ERROR No appenders could be found for logger (chapter1.MyApp1).
  +log4j:ERROR Please initialize the log4j system properly.</screen>	
       </note>
   
       <para>Log4j is complaining because we have not configured it just
  @@ -224,6 +230,9 @@
   	</para>
         </step>
       </procedure> 
  +
     </sect1>
  + 
  +
     
   </chapter>
  
  
  

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