<!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 Feb 18, 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>
		Introduction - 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="20120218" />
		<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="#">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="externalLink">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 active">
								<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="collapsed">
								<a href="../docs/appenders.html" title="Appenders">Appenders</a>
						</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="externalLink" target="_blank" title="Wiki">Wiki</a>
			</li>
										<li class="none">
						
						
				<a href="http://blogs.apache.org/logging/" class="externalLink" 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="externalLink" target="_blank" title="Home">Home</a>
			</li>
										<li class="none">
						
						
				<a href="http://www.apache.org/foundation/sponsorship.html" class="externalLink" target="_blank" title="Sponsorship">Sponsorship</a>
			</li>
										<li class="none">
						
						
				<a href="http://www.apache.org/licenses/" class="externalLink" target="_blank" title="License">License</a>
			</li>
										<li class="none">
						
						
				<a href="http://www.apache.org/foundation/thanks.html" class="externalLink" target="_blank" title="Thanks">Thanks</a>
			</li>
										<li class="none">
						
						
				<a href="http://www.apachecon.com" class="externalLink" target="_blank" title="Conferences">Conferences</a>
			</li>
										<li class="none">
						
						
				<a href="http://www.apache.org/security/" class="externalLink" 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>Introduction<a name="Introduction"></a></h2>
			
			<p>There are three main concepts in Apache log4php: loggers, appenders and layouts. These three types of 
			components work together to enable developers to log messages according to message type and level, and to 
			control at runtime how these messages are formatted and where they are reported.</p>
			
			<a name="Loggers"></a><div class="section"><h3 id="Loggers">Loggers</h3>
				<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>
			</div>
			
			<a name="Appenders"></a><div class="section"><h3 id="Appenders">Appenders</h3>
				<p>Logging requests can be sent to multiple destinations and such destinations are called appenders. 
				Appenders exist for console, files, syslog, database, sockets and other output destinations. One or 
				more appenders can be attached to a logger. Each enabled logging request for a given logger will be 
				forwarded to all the appenders in that logger.</p>
			</div>
			
			<a name="Layouts"></a><div class="section"><h3 id="Layouts">Layouts</h3>
				<p>Layouts are components responsible for transforming a logging event into a string. Most appender 
				classes require a layout class to convert the event to a string so that it can be logged.</p>
			</div>
		
			<a name="Levels"></a><div class="section"><h3 id="Levels">Levels</h3>
				<p>A level describes the severity of a logging message. There are six levels, show here in descending order
				of severity.</p>
				
				<table border="0" class="bodyTable">
					<thead>
						<tr class="a">
							<th>Level</th>
							<th>Severity</th>
							<th>Description</th>
						</tr>
					</thead>
					<tbody>
						<tr class="b">
							<td>FATAL</td>
							<td>Highest</td>
							<td>Very severe error events that will presumably lead the application to abort.</td>
						</tr>
						<tr class="a">
							<td>ERROR</td>
							<td>...</td>
							<td>Error events that might still allow the application to continue running.</td>
						</tr>
						<tr class="b">
							<td>WARN</td>
							<td>...</td>
							<td>Potentially harmful situations which still allow the application to continue running.</td>
						</tr>
						<tr class="a">
							<td>INFO</td>
							<td>...</td>
							<td>Informational messages that highlight the progress of the application at coarse-grained level.</td>
						</tr>
						<tr class="b">
							<td>DEBUG</td>
							<td>...</td>
							<td>Fine-grained informational events that are most useful to debug an application.</td>
						</tr>
						<tr class="a">
							<td>TRACE</td>
							<td>Lowest</td>
							<td>Finest-grained informational events.</td>
						</tr>
					</tbody>
				</table>
			</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>
		</div>
	</body>
</html>
