| <?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>Appenders</title> | |
| </properties> | |
| <body> | |
| <section name="Appenders"> | |
| <p>Logging requests can be sent to multiple destinations, such as files, databases, syslog and others. | |
| Such destinations are called appenders. Appenders are attached to <a href="loggers.html">loggers</a> | |
| and each logger can have multiple attached appenders.</p> | |
| <subsection name="Appender reference" id="Appender_reference"> | |
| <p>The following appender classes are available:</p> | |
| <table> | |
| <thead> | |
| <tr> | |
| <th>Name</th> | |
| <th>Destination</th> | |
| </tr> | |
| </thead> | |
| <tbody> | |
| <tr> | |
| <td><a href="appenders/console.html">LoggerAppenderConsole</a></td> | |
| <td>Console, directly to the stdout or stderr stream.</td> | |
| </tr> | |
| <tr> | |
| <td><a href="appenders/echo.html">LoggerAppenderEcho</a></td> | |
| <td>Console, using the PHP <code>echo</code> command.</td> | |
| </tr> | |
| <tr> | |
| <td><a href="appenders/file.html">LoggerAppenderFile</a></td> | |
| <td>A file.</td> | |
| </tr> | |
| <tr> | |
| <td><a href="appenders/daily-file.html">LoggerAppenderDailyFile</a></td> | |
| <td>A file (new file each day).</td> | |
| </tr> | |
| <tr> | |
| <td><a href="appenders/rolling-file.html">LoggerAppenderRollingFile</a></td> | |
| <td>A file (new file when a specified size has been reached). </td> | |
| </tr> | |
| <tr> | |
| <td><a href="appenders/mail.html">LoggerAppenderMail</a></td> | |
| <td>Sends the log via email. The entire log is sent in one email.</td> | |
| </tr> | |
| <tr> | |
| <td><a href="appenders/mail-event.html">LoggerAppenderMailEvent</a></td> | |
| <td>Sends the log via email. Each log entry is sent in individual emails.</td> | |
| </tr> | |
| <tr> | |
| <td><a href="appenders/mongodb.html">LoggerAppenderMongoDB</a></td> | |
| <td>MongoDB.</td> | |
| </tr> | |
| <tr> | |
| <td><a href="appenders/null.html">LoggerAppenderNull</a></td> | |
| <td>Ignores all log events.</td> | |
| </tr> | |
| <tr> | |
| <td><a href="appenders/pdo.html">LoggerAppenderPDO</a></td> | |
| <td>Database.</td> | |
| </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> | |
| </tr> | |
| <tr> | |
| <td><a href="appenders/socket.html">LoggerAppenderSocket</a></td> | |
| <td>A network socket.</td> | |
| </tr> | |
| <tr> | |
| <td><a href="appenders/syslog.html">LoggerAppenderSyslog</a></td> | |
| <td>Syslog.</td> | |
| </tr> | |
| </tbody> | |
| </table> | |
| </subsection> | |
| <subsection name="Configuring appenders" id="Configuring_appenders"> | |
| <p>The following configuration shows how to configure an appender which logs to a file:</p> | |
| <pre class="prettyprint linenums"><![CDATA[ | |
| <configuration xmlns="http://logging.apache.org/log4php/"> | |
| <appender name="default" class="LoggerAppenderFile"> | |
| <layout class="LoggerLayoutSimple" /> | |
| <param name="file" value="/var/log/my.log" /> | |
| <param name="append" value="true" /> | |
| </appender> | |
| <root> | |
| <appender_ref ref="default" /> | |
| </root> | |
| </configuration> | |
| ]]></pre> | |
| <p>From the configuration you can see that an appender has the following properties:</p> | |
| <ul> | |
| <li>A <strong>name</strong> which uniquely identifies it, in this case <em>default</em>.</li> | |
| <li>A <strong>class</strong> which specifies which appender class will be used to handle the | |
| requests. Since we wish to log to a file, <code>LoggerAppenderFile</code> is used in this case.</li> | |
| <li>A <strong>layout</strong> which transforms the logging events to string which can be logged. | |
| A layout is required by most appenders, but some do not require it, such as the database appender. | |
| If a layout is not defined, the appenders will use a default layout.</li> | |
| <li>Zero or more <strong>parameters</strong> which configure the appender | |
| behaviour. In this example, the <em>file</em> parameter governs the path to the file which will be | |
| used for logging, and <em>append</em> defines that log messages should be appended to the file, | |
| instead of truncating it.</li> | |
| </ul> | |
| </subsection> | |
| <subsection name="Linking appenders to loggers"> | |
| <p>A logger can be linked to one or more appenders. Also, multiple loggers can share the same | |
| appender.</p> | |
| <p>Consider the following configuration:</p> | |
| <pre class="prettyprint linenums"><![CDATA[ | |
| <log4php:configuration xmlns:log4php="http://logging.apache.org/log4php/"> | |
| <appender name="primus" class="LoggerAppenderConsole" /> | |
| <appender name="secundus" class="LoggerAppenderFile"> | |
| <param name="file" value="/var/log/my.log" /> | |
| </appender> | |
| <logger name="main"> | |
| <appender_ref ref="primus" /> | |
| <appender_ref ref="secundus" /> | |
| </logger> | |
| <logger name="alternative"> | |
| <appender_ref ref="primus" /> | |
| </logger> | |
| </log4php:configuration> | |
| ]]></pre> | |
| <p>This configures two appenders, called <em>primus</em> and <em>secundus</em>, and two loggers named | |
| <em>main</em> and <em>alternative</em>. The logger <em>main</em> is linked to <em>primus</em> and | |
| <em>secundus</em> and will therefore forward logging events to both of them. In other words, | |
| it will log both to console and to a file. Logger <em>alternative</em> is only linked to appender | |
| <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 linenums"><![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> |