blob: 62e78a29dc5480e04b77742152cc363ad2cc8c9e [file] [log] [blame]
=========
Appenders
=========
Logging requests can be sent to multiple destinations, such as files, databases,
syslog and others. Such destinations are called appenders. Appenders are
attached to `Loggers <./loggers.html>`_ and each logger can have multiple
attached appenders.
Appender reference
------------------
The following appender classes are available:
.. toctree::
:maxdepth: 1
amqp
console
daily-file
echo
file
firephp
graylog2
mail
mail-event
mongodb
null
pdo
php
Configuring appenders
---------------------
.. code-block:: xml
<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>
From the configuration you can see that an appender has the following
properties:
* A **name** which uniquely identifies it, in this case *default*.
* A **class** which specifies which appender class will be used to handle the
requests. Since we wish to log to a file, ``LoggerAppenderFile`` is used in
this case.
* A **layout** 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.
* Zero or more **parameters** which configure the appender behaviour. In this
example, the *file* parameter governs the path to the file which will be used
for logging, and *append* defines that log messages should be appended to the
file, instead of truncating it.
Linking appenders to loggers
----------------------------
A logger can be linked to one or more appenders. Also, multiple loggers can
share the same appender.
Consider the following configuration:
.. code-block:: xml
<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>
This configures two appenders, called *primus* and *secundus*, and two loggers
named *main* and *alternative*. The logger *main* is linked to *primus* and
*secundus* and will therefore forward logging events to both of them. In other
words, it will log both to console and to a file. Logger *alternative* is only
linked to appender *primus* and will therefore only log to the console.
Appender threshold
------------------
An appender can be assigned a threshold level. All logging requests with level
lower than this threshold will be ignored.
For example, if you set ``WARN`` as a threshold, then ``INFO``, ``DEBUG`` and
``TRACE`` level events recieved by the appender will not be logged, but
``WARN``, ``ERROR`` and ``FATAL`` will.
An example of setting an appender threshold:
.. code-block:: xml
<configuration xmlns="http://logging.apache.org/log4php/">
<appender name="default" class="LoggerAppenderEcho" threshold="WARN" />
<root>
<appender_ref ref="default" />
</root>
</configuration>
.. 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.