Author: ihabunek
Date: Wed Oct 19 05:13:48 2011
New Revision: 1185971

URL: http://svn.apache.org/viewvc?rev=1185971&view=rev
Log:
More work on docs.

Added:
    
logging/log4php/branches/experimental/config-adapters/src/site/xdoc/docs/loggers.xml
Removed:
    
logging/log4php/branches/experimental/config-adapters/src/site/apt/docs/configuration-old.apt
    
logging/log4php/branches/experimental/config-adapters/src/site/apt/docs/filters-old.apt
    
logging/log4php/branches/experimental/config-adapters/src/site/apt/docs/introduction-old.apt
    
logging/log4php/branches/experimental/config-adapters/src/site/apt/docs/loggers.apt
Modified:
    
logging/log4php/branches/experimental/config-adapters/src/site/xdoc/docs/appenders.xml

Modified: 
logging/log4php/branches/experimental/config-adapters/src/site/xdoc/docs/appenders.xml
URL: 
http://svn.apache.org/viewvc/logging/log4php/branches/experimental/config-adapters/src/site/xdoc/docs/appenders.xml?rev=1185971&r1=1185970&r2=1185971&view=diff
==============================================================================
--- 
logging/log4php/branches/experimental/config-adapters/src/site/xdoc/docs/appenders.xml
 (original)
+++ 
logging/log4php/branches/experimental/config-adapters/src/site/xdoc/docs/appenders.xml
 Wed Oct 19 05:13:48 2011
@@ -83,7 +83,7 @@
                                                </tr>
                                                <tr>
                                                        <td><a 
href="appenders/php.html">LoggerAppenderPhp</a></td>
-                                                       <td>Creates a PHP 
user-level message using the PHP <code>trigger_error</code> function.</td>
+                                                       <td>Creates a PHP 
user-level message using the PHP <code>trigger_error()</code> function.</td>
                                                </tr>
                                                <tr>
                                                        <td><a 
href="appenders/socket.html">LoggerAppenderSocket</a></td>
@@ -163,6 +163,28 @@
                                <em>primus</em> and will therefore only log to 
the console.</p>  
                        
                        </subsection>
+                       
+                       
+                       <subsection name="Appender threshold">
+                       
+                               <p>An appender can be assigned a threshold 
level. All logging requests with level lower than this threshold
+                               will be ignored.</p>
+                               
+                               <p>For example, if you set <code>WARN</code> as 
a threshold, then <code>INFO</code>, <code>DEBUG</code>
+                               and <code>TRACE</code> level events recieved by 
the appender will not be logged, but <code>WARN</code>,
+                               <code>ERROR</code> and <code>FATAL</code> 
will.</p>
+                               
+                               <p>An example of setting an appender 
threshold:</p>
+                               
+<pre class="prettyprint"><![CDATA[
+<configuration xmlns="http://logging.apache.org/log4php/";>
+    <appender name="default" class="LoggerAppenderEcho" threshold="WARN" />
+    <root>
+        <appender_ref ref="default" />
+    </root>
+</configuration>
+]]></pre>
+                       </subsection>
                </section>
        </body>
 </document>

Added: 
logging/log4php/branches/experimental/config-adapters/src/site/xdoc/docs/loggers.xml
URL: 
http://svn.apache.org/viewvc/logging/log4php/branches/experimental/config-adapters/src/site/xdoc/docs/loggers.xml?rev=1185971&view=auto
==============================================================================
--- 
logging/log4php/branches/experimental/config-adapters/src/site/xdoc/docs/loggers.xml
 (added)
+++ 
logging/log4php/branches/experimental/config-adapters/src/site/xdoc/docs/loggers.xml
 Wed Oct 19 05:13:48 2011
@@ -0,0 +1,289 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+ 
+         http://www.apache.org/licenses/LICENSE-2.0
+ 
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<document xmlns="http://maven.apache.org/XDOC/2.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+       xsi:schemaLocation="http://maven.apache.org/XDOC/2.0 
http://maven.apache.org/xsd/xdoc-2.0.xsd";>
+
+       <properties>
+               <title>Loggers</title>
+       </properties>
+
+       <body>
+               <section name="Loggers">
+               
+                       <p>A logger is a component which will take your logging 
request and log it. Each class in a project can 
+                       have an individual logger, or they can all use a common 
logger. Loggers are named entities; it is 
+                       common to name them after the class which will use it 
for logging.</p>
+                       
+                       <p>Creating a logger is done by calling the static 
<code>getLogger()</code> method on the Logger object 
+                       and providing the name of the logger. For example, to 
create a logger named <code>foo</code>:</p>
+                       
+                       <pre class="prettyprint">$logger = 
Logger::getLogger('foo');</pre>
+                       
+                       <p>Logging requests are made by invoking one of the 
printing methods of a Logger instance. These logging 
+                       methods are: trace, debug, info, warn, error and fatal. 
The printing method determines the level of a 
+                       logging request. For example, calling the method 
<code>info()</code> creates a logging request of level 
+                       <code>INFO</code>. For example:</p>
+                       
+                       <pre class="prettyprint">$logger->info("This is the 
message to be logged.");</pre>
+
+                       <p>Loggers by themselves do not define where these 
messages will be logged. For that you need to assign 
+                       one or more <a href="./appender.html">appenders</a> to 
the logger.</p>
+                       
+                       <subsection name="Logger threshold" 
id="Logger_threshold">
+                               <p>A logger can be assigned a threshold level. 
All logging requests with level lower than this threshold
+                               will be ignored.</p>
+                                 
+                               <p>For example, setting logger threshold to 
<code>INFO</code> means that logging requests with levels 
+                               <code>TRACE</code> and <code>DEBUG</code> will 
not be logged by this logger.</p>
+                               
+                               <p>An example of setting the root logger 
threshold to <code>DEBUG</code>:</p>
+                               
+<pre class="prettyprint"><![CDATA[
+<configuration xmlns="http://logging.apache.org/log4php/";>
+    <appender name="default" class="LoggerAppenderConsole" />
+    <root>
+        <level value="debug" />
+        <appender_ref ref="default" />
+    </root>
+</configuration>
+]]></pre>              
+                               
+                               <p>By default loggers do not have a threshold 
set, which means they will log all events, regardless of the
+                               level.</p>
+                       </subsection>
+                       
+                       <subsection name="Configuring loggers" 
id="Configuring_loggers">
+                               <p>Loggers can be individually configured in 
the configuration file. </p>
+                               
+                               <p>The simplest example is to configure the 
root logger, since all other loggers will inherit its 
+                               settings, as explained in the <a 
href="#Logger_hierarchy">next section</a>.</p>
+                               
+<pre class="prettyprint"><![CDATA[
+<configuration xmlns="http://logging.apache.org/log4php/";>
+    <appender name="default" class="LoggerAppenderConsole" />
+    <root>
+        <level value="debug" />
+        <appender_ref ref="default" />
+    </root>
+</configuration>
+]]></pre>              
+                               <p>This configuration adds the 
<code>default</code> appender to the root logger, and sets it's 
+                               <a href="#Logger_threshold">threshold level</a> 
to DEBUG.</p>
+                               
+                               <p>It is also possible to configure individual 
named loggers. For example, let's configure the 
+                               <code>foo</code> logger, used in the example 
above, and set it's threshold to WARN:</p> 
+                                       
+<pre class="prettyprint"><![CDATA[
+<configuration xmlns="http://logging.apache.org/log4php/";>
+    <appender name="default" class="LoggerAppenderConsole" />
+    <logger name="foo">
+        <level value="warn" />
+        <appender_ref ref="default" />
+    </logger>
+</configuration>
+]]></pre>
+                       </subsection>
+                       
+                       <subsection name="Logger hierarchy" 
id="Logger_hierarchy">
+                               <p>Loggers follow a parent-child relationship 
pattern which is implemented by using a naming pattern.
+                               A logger is said to be an <em>ancestor</em> of 
another logger if its name followed by a dot is a 
+                               prefix of the <em>descendant</em> logger name. 
A logger is said to be a <em>parent</em> of a 
+                               <em>child</em> logger if there are no ancestors 
between itself and the descendant logger.</p>
+                       
+                               <p>For example, the logger named 
<code>foo</code> is a parent of the logger named <code>foo.bar</code>.
+                               Similarly, <code>org</code> is a parent of 
<code>org.apache</code> and an ancestor of 
+                               <code>org.apache.logging</code>. This naming 
scheme should be familiar to most developers.</p>
+                               
+                               <p>The root logger resides at the top of the 
logger hierarchy. It is exceptional in two ways:</p>
+                               <ul>
+                                       <li>it always exists,</li>
+                                       <li>it cannot be retrieved by name.</li>
+                               </ul>
+                               
+                               <p>Invoking the class static 
<code>Logger::getRootLogger()</code> method retrieves the root logger. 
+                               All other loggers are instantiated and 
retrieved with the <code>Logger::getLogger($name)</code>
+                               method. This method takes the name of the 
desired logger as a parameter. If the logger does not exist
+                               at the time of the call, it will be created.</p>
+                       </subsection>
+                       
+                       <subsection name="Logger inheritance" 
id="Logger_inheritance">
+                               <p>The threshold level and appenders are 
inherited from the parent to the child loggers.</p>
+                               
+                               <p>For example examine the following 
configuration:</p>
+                               
+<pre class="prettyprint"><![CDATA[
+<configuration xmlns="http://logging.apache.org/log4php/";>
+    <appender name="default" class="LoggerAppenderConsole" />
+    <root>
+        <level value="debug" />
+        <appender_ref ref="default" />
+    </root>
+</configuration>
+]]></pre>
+
+                               <p>The threshold level of the root logger is 
set to debug. Also, the root logger is linked to a console
+                               appender. Any named logger that is created will 
inherit these root settings.</p>
+                       
+<pre class="prettyprint"><![CDATA[
+$main = Logger::getLogger('main');
+$main->trace('This will not be logged.');
+$main->info('This will be logged.');
+]]></pre>
+                               <p>A logger named <code>main</code> is created. 
Since there is no logger-specific configuration, it 
+                               will inherit all of it's settings from the root 
logger: a console appender, and threshold set to DEBUG.
+                               Therefore, this code will produce the following 
output:</p>
+                               
+                               <pre>INFO - This will be logged.</pre>
+                       </subsection>
+                       
+                       <subsection name="Appender additivity" 
id="Appender_additivity">
+                               <p>Appender additivity is a property of loggers 
to inherit their parent's appenders. By default all 
+                               loggers have appender additivity enabled.</p>
+                               
+                               <p>Let's take the following example:</p>
+                               
+<pre class="prettyprint"><![CDATA[
+<configuration xmlns="http://logging.apache.org/log4php/";>
+    <appender name="A1" class="LoggerAppenderConsole" />
+    <appender name="A2" class="LoggerAppenderConsole" />
+    <root>
+        <appender_ref ref="A1" />
+    </root>
+    <logger name="foo"> 
+        <appender_ref ref="A2" />
+    </logger>
+</configuration>
+]]></pre>
+                               <p>Since additivity is enabled by default, the 
logger <code>foo</code> will have two linked appenders: 
+                               A1 which it will inherit from the root logger, 
and A2 which is defined for it specifically.</p>
+                               
+                               <p>Therefore, by executing the following 
code:</p>
+                               
+<pre class="prettyprint"><![CDATA[
+$main = Logger::getLogger('foo');
+$main->info('This will be logged twice.');
+]]></pre>
+                               <p>The message will be logged twice - once by 
A1 and once by A2, producing:</p>
+                               
+<pre>
+INFO - This will be logged twice.
+INFO - This will be logged twice.
+</pre>
+                       
+                               <h4>Disabling appender additivity</h4>
+                               
+                               <p>Logger's appender additivity can also be 
disabled if needed.</p>
+                               
+                               <p>If the <code>foo</code> logger in the 
previous example was configured like this:</p>
+
+<pre class="prettyprint"><![CDATA[
+<logger name="foo" additivity="false"> 
+    <appender_ref ref="A2" />
+</logger>
+]]></pre>
+                               <p>Then the logger would not have inherited the 
A1 appender from the root logger, and the message 
+                               would have been logged only once.</p>
+                       
+                               <h4>A more complex example</h4>
+                       
+                               <p>In this example we will look at multiple 
loggers making a hierarchy.</p>
+                               
+                               <p>Not to make the example too complex, all 
appenders will log to the console. Of course, this doesn't
+                               always have to be the case.</p>
+                               
+                               <p>Let's take the following configuration 
file:</p>
+                               
+<pre class="prettyprint"><![CDATA[
+<configuration xmlns="http://logging.apache.org/log4php/";>
+    <appender name="A1" class="LoggerAppenderConsole" />
+    <appender name="A2" class="LoggerAppenderConsole" />
+    <appender name="A3" class="LoggerAppenderConsole" />
+    <appender name="A4" class="LoggerAppenderConsole" />
+
+    <root>
+        <appender_ref ref="A1" />
+    </root>
+    <logger name="foo">
+        <appender_ref ref="A2" />
+        <appender_ref ref="A3" />
+    </logger>
+    <logger name="foo.bar" />
+    <logger name="foo.bar.baz" additivity="false">
+        <appender_ref ref="A4" />
+    </logger>
+</configuration>
+]]></pre>
+                               <p>The table below shows how the configuration 
is interpreted, and which appenders are inherited:</p>
+                               
+                               <table>
+                                       <thead>
+                                               <tr>
+                                                       <th>Logger name</th>
+                                                       <th>Linked 
appenders</th>
+                                                       <th>Additivity flag</th>
+                                                       <th>Output targets</th>
+                                                       <th>Comment</th>
+                                               </tr>
+                                       </thead>
+                                       <tbody>
+                                               <tr>
+                                                       <td>root</td>
+                                                       <td>A1</td>
+                                                       <td>N/A</td>
+                                                       <td>A1</td>
+                                                       <td>One appender, named 
A1, is added to root logger. Any logging requests to root logger 
+                                                       will be forwarded only 
to that one appender.</td>
+                                               </tr>
+                                               <tr>
+                                                       <td>foo</td>
+                                                       <td>A2, A3</td>
+                                                       <td>true</td>
+                                                       <td>A1, A2, A3</td>
+                                                       <td>A logger named 
<code>foo</code> is created and two appenders, named A2 and A3, are 
+                                                       added to it. 
Additionally, because of logger additivity, <code>foo</code> inherits the 
+                                                       appender A1 from the 
root logger which is it's parent in the logger hierarchy. Therefore 
+                                                       logging requests to 
this logger will be forwarded to appenders A1, A2 and A3.</td>
+                                               </tr>
+                                               <tr>
+                                                       <td>foo.bar</td>
+                                                       <td>none</td>
+                                                       <td>true</td>
+                                                       <td>A1, A2, A3</td>
+                                                       <td>A logger named 
<code>foo.bar</code> is created. Because it's name starts with 
+                                                       <code>foo</code>, it 
will be created as a child of the <code>foo</code> logger. 
+                                                       No appenders are added 
to <code>foo.bar</code> but it will inherit it's ancestor's 
+                                                       appenders: appenders A2 
and A3 from <code>foo</code> and A1 from <code>root</code>.
+                                                       Logging requests to 
this logger will be forwarded to appenders A1, A2 and A3.</td>
+                                               </tr>
+                                               <tr>
+                                                       <td>foo.bar.baz</td>
+                                                       <td>A4</td>
+                                                       <td>false</td>
+                                                       <td>A4</td>
+                                                       <td>Finally, logger 
<code>foo.bar.baz</code> is created, and because of it's name it is 
+                                                       created as child to 
<code>foo.bar</code>. One appender, A4 is added to it. However, since
+                                                       it's additivity flag is 
set to <em>false</em>, it will not inherit any appenders from it's
+                                                       ancestors. Logging 
requests to this logger will be forwarded only to appender A4.</td>
+                                               </tr>
+                                       </tbody>
+                               
+                               </table>
+                       </subsection>
+               </section>
+       </body>
+</document>


Reply via email to