<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!-- Generated by Apache Maven Doxia at Oct 13, 2012 -->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
		<title>Apache log4php - 
		Appenders - Apache log4php</title>
		<link rel="stylesheet" href="../css/bootstrap.min.css" type="text/css" />
		<link rel="stylesheet" href="../css/site.css" type="text/css" />
		<script type="text/javascript" src="../js/jquery.min.js"></script>
		<script type="text/javascript" src="../js/bootstrap.min.js"></script>
		<script type="text/javascript" src="../js/prettify.min.js"></script>
		<script type="text/javascript" src="../js/site.js"></script>
		<meta name="Date-Revision-yyyymmdd" content="20121013" />
		<meta http-equiv="Content-Language" content="en" />
		
					<!-- Google Analytics -->
		<script type="text/javascript">
		
			var _gaq = _gaq || [];
			_gaq.push(['_setAccount', 'UA-26177991-1']);
			_gaq.push (['_gat._anonymizeIp']);
			_gaq.push(['_trackPageview']);

			(function() {
				var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
				ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
				var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
			})();

		</script>
		</head>
	<body class="composite">
 
		<div class="navbar">
			<div class="navbar-inner">
				<div class="container-fluid">
					<a class="brand" href="http://logging.apache.org/log4php">Apache log4php &trade;</a>
						<ul class="nav">
						<li>
									<a href="../index.html" title="About">About</a>
			</li>
					<li>
									<a href="../download.html" title="Download">Download</a>
			</li>
					<li>
									<a href="../install.html" title="Install">Install</a>
			</li>
					<li>
									<a href="../quickstart.html" title="Quick start">Quick start</a>
			</li>
		</ul>

					<!-- Twitter link -->
					<ul class="nav pull-right">
						<li><a href="http://twitter.com/log4php/" class="external">Follow <strong>@log4php</strong></a></li>
					</ul>
					
					<!-- Google CSE Search Box -->
					<form class="navbar-search pull-right" id="cref" action="http://www.google.com/cse">
						<input type="hidden" name="cref" value="http://logging.apache.org/log4php/cse.xml" />
						<input class="search-query pull-left" type="text" name="q" size="40" placeholder="Search" />
					</form>
				</div>
			</div>
		</div>

		<div class="container-fluid">
			<table class="layout-table">
				<tr>
					<td class="sidebar">
						<div class="well sidebar-nav">
										<ul class="nav nav-list">
								 <li class="nav-header"><i class="icon-home"></i>Apache log4php™</li>
																	<li class="none">
								<a href="../index.html" title="About">About</a>
			</li>
										<li class="none">
								<a href="../download.html" title="Download">Download</a>
			</li>
										<li class="none">
								<a href="../install.html" title="Install">Install</a>
			</li>
										<li class="none">
								<a href="../changelog.html" title="Changelog">Changelog</a>
			</li>
							</ul>
			<ul class="nav nav-list">
								 <li class="nav-header"><i class="icon-book"></i>Documentation</li>
																	<li class="none">
								<a href="../quickstart.html" title="Quick start">Quick start</a>
			</li>
										<li class="none">
								<a href="../docs/introduction.html" title="Introduction">Introduction</a>
			</li>
										<li class="none">
								<a href="../docs/configuration.html" title="Configuration">Configuration</a>
			</li>
										<li class="none">
								<a href="../docs/loggers.html" title="Loggers">Loggers</a>
			</li>
																																																																																																																																																											<li class="expanded active">
								<a href="../docs/appenders.html" title="Appenders">Appenders</a>
							<ul>
												<li class="none">
								<a href="../docs/appenders/console.html" title="LoggerAppenderConsole">LoggerAppenderConsole</a>
			</li>
												<li class="none">
								<a href="../docs/appenders/daily-file.html" title="LoggerAppenderDailyFile">LoggerAppenderDailyFile</a>
			</li>
												<li class="none">
								<a href="../docs/appenders/echo.html" title="LoggerAppenderEcho">LoggerAppenderEcho</a>
			</li>
												<li class="none">
								<a href="../docs/appenders/file.html" title="LoggerAppenderFile">LoggerAppenderFile</a>
			</li>
												<li class="none">
								<a href="../docs/appenders/firephp.html" title="LoggerAppenderFirePHP">LoggerAppenderFirePHP</a>
			</li>
												<li class="none">
								<a href="../docs/appenders/mail.html" title="LoggerAppenderMail">LoggerAppenderMail</a>
			</li>
												<li class="none">
								<a href="../docs/appenders/mail-event.html" title="LoggerAppenderMailEvent">LoggerAppenderMailEvent</a>
			</li>
												<li class="none">
								<a href="../docs/appenders/mongodb.html" title="LoggerAppenderMongoDB">LoggerAppenderMongoDB</a>
			</li>
												<li class="none">
								<a href="../docs/appenders/null.html" title="LoggerAppenderNull">LoggerAppenderNull</a>
			</li>
												<li class="none">
								<a href="../docs/appenders/pdo.html" title="LoggerAppenderPDO">LoggerAppenderPDO</a>
			</li>
												<li class="none">
								<a href="../docs/appenders/php.html" title="LoggerAppenderPHP">LoggerAppenderPHP</a>
			</li>
												<li class="none">
								<a href="../docs/appenders/rolling-file.html" title="LoggerAppenderRollingFile">LoggerAppenderRollingFile</a>
			</li>
												<li class="none">
								<a href="../docs/appenders/socket.html" title="LoggerAppenderSocket">LoggerAppenderSocket</a>
			</li>
												<li class="none">
								<a href="../docs/appenders/syslog.html" title="LoggerAppenderSyslog">LoggerAppenderSyslog</a>
			</li>
							</ul>
				</li>
																																																																																<li class="collapsed">
								<a href="../docs/layouts.html" title="Layouts">Layouts</a>
						</li>
										<li class="none">
								<a href="../docs/filters.html" title="Filters">Filters</a>
			</li>
										<li class="none">
								<a href="../docs/renderers.html" title="Renderers">Renderers</a>
			</li>
										<li class="none">
								<a href="../apidocs/index.html" title="API documentation">API documentation</a>
			</li>
							</ul>
			<ul class="nav nav-list">
								 <li class="nav-header"><i class="icon-user"></i>Community</li>
																	<li class="none">
								<a href="../volunteering.html" title="Volunteering">Volunteering</a>
			</li>
										<li class="none">
								<a href="../contributingpatches.html" title="Contributing Patches">Contributing Patches</a>
			</li>
										<li class="none">
						
						
				<a href="http://wiki.apache.org/logging-log4php" class="external" target="_blank" title="Wiki">Wiki</a>
			</li>
										<li class="none">
						
						
				<a href="http://blogs.apache.org/logging/" class="external" target="_blank" title="Blog">Blog</a>
			</li>
							</ul>
			<ul class="nav nav-list">
								 <li class="nav-header"><i class="icon-info-sign"></i>Project Information</li>
																	<li class="none">
								<a href="../integration.html" title="Continuous Integration">Continuous Integration</a>
			</li>
										<li class="none">
								<a href="../source-repository.html" title="Source Repository">Source Repository</a>
			</li>
										<li class="none">
								<a href="../dependencies.html" title="Dependencies">Dependencies</a>
			</li>
										<li class="none">
								<a href="../license.html" title="Project License">Project License</a>
			</li>
										<li class="none">
								<a href="../team-list.html" title="Project Team">Project Team</a>
			</li>
										<li class="none">
								<a href="../issue-tracking.html" title="Issue Tracking">Issue Tracking</a>
			</li>
										<li class="none">
								<a href="../mail-lists.html" title="Mailing Lists">Mailing Lists</a>
			</li>
							</ul>
			<ul class="nav nav-list">
								 <li class="nav-header"><i class="icon-cog"></i>Project Reports</li>
																	<li class="none">
								<a href="../changes-report.html" title="Changes Report">Changes Report</a>
			</li>
										<li class="none">
								<a href="../surefire-report.html" title="Surefire Report">Surefire Report</a>
			</li>
										<li class="none">
								<a href="../rat-report.html" title="RAT Report">RAT Report</a>
			</li>
										<li class="none">
								<a href="../coverage-report/index.html" title="Code Coverage">Code Coverage</a>
			</li>
							</ul>
			<ul class="nav nav-list">
								 <li class="nav-header"><i class="icon-heart"></i>Apache</li>
																	<li class="none">
						
						
				<a href="http://www.apache.org" class="external" target="_blank" title="Home">Home</a>
			</li>
										<li class="none">
						
						
				<a href="http://www.apache.org/foundation/sponsorship.html" class="external" target="_blank" title="Sponsorship">Sponsorship</a>
			</li>
										<li class="none">
						
						
				<a href="http://www.apache.org/licenses/" class="external" target="_blank" title="License">License</a>
			</li>
										<li class="none">
						
						
				<a href="http://www.apache.org/foundation/thanks.html" class="external" target="_blank" title="Thanks">Thanks</a>
			</li>
										<li class="none">
						
						
				<a href="http://www.apachecon.com" class="external" target="_blank" title="Conferences">Conferences</a>
			</li>
										<li class="none">
						
						
				<a href="http://www.apache.org/security/" class="external" target="_blank" title="Security">Security</a>
			</li>
							</ul>
							</div>
						<div id="poweredBy">
															<a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
				<img class="poweredBy" alt="Built by Maven" src="../images/logos/maven-feather.png" />
			</a>
									</div>
					</td>
					<td class="content">
						<!-- 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. -->

	
		<div class="section"><h2>Appenders<a name="Appenders"></a></h2>
		
			<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>
			
			<a name="Appender_reference"></a><div class="section" id="Appender_reference"><h3>Appender reference<a name="Appender_reference"></a></h3>
				
				<p>The following appender classes are available:</p>
			
				<table border="0" class="bodyTable">
					<thead>
						<tr class="a">
							<th>Name</th>
							<th>Destination</th>
						</tr>
					</thead>
					<tbody>
						<tr class="b">
							<td><a href="appenders/console.html">LoggerAppenderConsole</a></td>
							<td>Console, directly to the stdout or stderr stream.</td>
						</tr>
						<tr class="a">
							<td><a href="appenders/echo.html">LoggerAppenderEcho</a></td>
							<td>Console, using the PHP <tt>echo</tt> command.</td>
						</tr>
						<tr class="b">
							<td><a href="appenders/file.html">LoggerAppenderFile</a></td>
							<td>A file.</td>
						</tr>
						<tr class="a">
							<td><a href="appenders/daily-file.html">LoggerAppenderDailyFile</a></td>
							<td>A file (new file each day).</td>
						</tr>
						<tr class="b">
							<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 class="a">
							<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 class="b">
							<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 class="a">
							<td><a href="appenders/mongodb.html">LoggerAppenderMongoDB</a></td>
							<td>MongoDB.</td>
						</tr>
						<tr class="b">
							<td><a href="appenders/null.html">LoggerAppenderNull</a></td>
							<td>Ignores all log events.</td>
						</tr>
						<tr class="a">
							<td><a href="appenders/pdo.html">LoggerAppenderPDO</a></td>
							<td>Database.</td>
						</tr>
						<tr class="b">
							<td><a href="appenders/php.html">LoggerAppenderPhp</a></td>
							<td>Creates a PHP user-level message using the PHP <tt>trigger_error()</tt> function.</td>
						</tr>
						<tr class="a">
							<td><a href="appenders/socket.html">LoggerAppenderSocket</a></td>
							<td>A network socket.</td>
						</tr>
						<tr class="b">
							<td><a href="appenders/syslog.html">LoggerAppenderSyslog</a></td>
							<td>Syslog.</td>
						</tr>
						
					</tbody>
				</table>
			
			</div>

			
			<a name="Configuring_appenders"></a><div class="section" id="Configuring_appenders"><h3>Configuring appenders<a name="Configuring_appenders"></a></h3>
			
				<p>The following configuration shows how to configure an appender which logs to a file:</p>
			
<div><pre class="prettyprint linenums">
&lt;configuration xmlns=&quot;http://logging.apache.org/log4php/&quot;&gt;
    &lt;appender name=&quot;default&quot; class=&quot;LoggerAppenderFile&quot;&gt;
        &lt;layout class=&quot;LoggerLayoutSimple&quot; /&gt;
        &lt;param name=&quot;file&quot; value=&quot;/var/log/my.log&quot; /&gt;
        &lt;param name=&quot;append&quot; value=&quot;true&quot; /&gt;
    &lt;/appender&gt;
    &lt;root&gt;
        &lt;appender_ref ref=&quot;default&quot; /&gt;
    &lt;/root&gt;
&lt;/configuration&gt;
</pre></div>

				<p>From the configuration you can see that an appender has the following properties:</p>
	
				<ul>
					<li>A <b>name</b> which uniquely identifies it, in this case <i>default</i>.</li>
					<li>A <b>class</b> which specifies which appender class will be used to handle the 
					requests. Since we wish to log to a file, <tt>LoggerAppenderFile</tt> is used in this case.</li>
					<li>A <b>layout</b> 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 <b>parameters</b> which configure the appender 
					behaviour. In this example, the <i>file</i> parameter governs the path to the file which will be
					used for logging, and <i>append</i> defines that log messages should be appended to the file,
					instead of truncating it.</li>
				</ul>			
				
			</div>
			
			<div class="section"><h3>Linking appenders to loggers<a name="Linking_appenders_to_loggers"></a></h3>
				
				<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>
			
<div><pre class="prettyprint linenums">
&lt;log4php:configuration xmlns:log4php=&quot;http://logging.apache.org/log4php/&quot;&gt;
    &lt;appender name=&quot;primus&quot; class=&quot;LoggerAppenderConsole&quot; /&gt;
    &lt;appender name=&quot;secundus&quot; class=&quot;LoggerAppenderFile&quot;&gt;
        &lt;param name=&quot;file&quot; value=&quot;/var/log/my.log&quot; /&gt;
    &lt;/appender&gt;
    &lt;logger name=&quot;main&quot;&gt;
        &lt;appender_ref ref=&quot;primus&quot; /&gt;
        &lt;appender_ref ref=&quot;secundus&quot; /&gt;
    &lt;/logger&gt;
    &lt;logger name=&quot;alternative&quot;&gt;
        &lt;appender_ref ref=&quot;primus&quot; /&gt;
    &lt;/logger&gt;
&lt;/log4php:configuration&gt;
</pre></div>
			
				<p>This configures two appenders, called <i>primus</i> and <i>secundus</i>, and two loggers named
				<i>main</i> and <i>alternative</i>. The logger <i>main</i> is linked to <i>primus</i> and 
				<i>secundus</i> and will therefore forward logging events to both of them. In other words,
				it will log both to console and to a file. Logger <i>alternative</i> is only linked to appender
				<i>primus</i> and will therefore only log to the console.</p>  
			
			</div>
			
			
			<div class="section"><h3>Appender threshold<a name="Appender_threshold"></a></h3>
			
				<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 <tt>WARN</tt> as a threshold, then <tt>INFO</tt>, <tt>DEBUG</tt>
				and <tt>TRACE</tt> level events recieved by the appender will not be logged, but <tt>WARN</tt>,
				<tt>ERROR</tt> and <tt>FATAL</tt> will.</p>
				
				<p>An example of setting an appender threshold:</p>
				
<div><pre class="prettyprint linenums">
&lt;configuration xmlns=&quot;http://logging.apache.org/log4php/&quot;&gt;
    &lt;appender name=&quot;default&quot; class=&quot;LoggerAppenderEcho&quot; threshold=&quot;WARN&quot; /&gt;
    &lt;root&gt;
        &lt;appender_ref ref=&quot;default&quot; /&gt;
    &lt;/root&gt;
&lt;/configuration&gt;
</pre></div>
			</div>
		</div>
	

					</td>
				</tr>
			</table>
		</div>
			
		<div class="footer">
			<p>Copyright &#169;										2012
												<a href="http://www.apache.org">Apache Software Foundation</a>.
						All Rights Reserved.			
				
				Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License, Version 2.0</a>. 
			Please read the <a href="../privacy.html">Privacy policy</a></p>
			<p>Apache log4php, Apache, log4php, the Apache feather logo, the Apache Logging Services project logo and the Built by 
			Maven logo are trademarks of The Apache Software Foundation.</p>
			<p>Site powered by <a class="external" href="http://twitter.github.com/bootstrap/">Twitter Bootstrap</a>. Icons from 
			<a class="external" href="http://glyphicons.com/">Glyphicons Free</a>.</p>
		</div>
	</body>
</html>
