<!DOCTYPE html>
<html>
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
	<meta name="generator" content="ApiGen 2.8.0" />

	<title>Class LoggerMDC | Apache log4php</title>

	<script type="text/javascript" src="resources/combined.js?238209907"></script>
	<script type="text/javascript" src="elementlist.js?4055067042"></script>
	<link rel="stylesheet" type="text/css" media="all" href="resources/style.css?3505392360" />

	<script type="text/javascript">
		var _gaq = _gaq || [];
		_gaq.push(['_setAccount', "UA-26177991-1"]);
		_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>
<div id="left">
	<div id="menu">
		<a href="index.html" title="Overview"><span>Overview</span></a>


		<div id="groups">
			<h3>Packages</h3>
			<ul>
				<li class="active"><a href="package-log4php.html">log4php<span></span></a>
						<ul>
				<li><a href="package-log4php.appenders.html">appenders</a>
						</li>
				<li><a href="package-log4php.configurators.html">configurators</a>
						</li>
				<li><a href="package-log4php.filters.html">filters</a>
						</li>
				<li><a href="package-log4php.helpers.html">helpers</a>
						</li>
				<li><a href="package-log4php.layouts.html">layouts</a>
						</li>
				<li><a href="package-log4php.pattern.html">pattern</a>
						</li>
				<li><a href="package-log4php.renderers.html">renderers</a>
						</li>
							</ul></li>
			</ul>
		</div>

		<hr />


		<div id="elements">
			<h3>Classes</h3>
			<ul>
				<li><a href="class-Logger.html">Logger</a></li>
				<li><a href="class-LoggerAppender.html">LoggerAppender</a></li>
				<li><a href="class-LoggerAppenderPool.html">LoggerAppenderPool</a></li>
				<li><a href="class-LoggerAutoloader.html">LoggerAutoloader</a></li>
				<li><a href="class-LoggerConfigurable.html">LoggerConfigurable</a></li>
				<li><a href="class-LoggerConfiguratorDefault.html">LoggerConfiguratorDefault</a></li>
				<li><a href="class-LoggerFilter.html">LoggerFilter</a></li>
				<li><a href="class-LoggerHierarchy.html">LoggerHierarchy</a></li>
				<li><a href="class-LoggerLayout.html">LoggerLayout</a></li>
				<li><a href="class-LoggerLevel.html">LoggerLevel</a></li>
				<li><a href="class-LoggerLocationInfo.html">LoggerLocationInfo</a></li>
				<li><a href="class-LoggerLoggingEvent.html">LoggerLoggingEvent</a></li>
				<li class="active"><a href="class-LoggerMDC.html">LoggerMDC</a></li>
				<li><a href="class-LoggerNDC.html">LoggerNDC</a></li>
				<li><a href="class-LoggerReflectionUtils.html">LoggerReflectionUtils</a></li>
				<li><a href="class-LoggerRoot.html">LoggerRoot</a></li>
				<li><a href="class-LoggerThrowableInformation.html">LoggerThrowableInformation</a></li>
			</ul>

			<h3>Interfaces</h3>
			<ul>
				<li><a href="class-LoggerConfigurator.html">LoggerConfigurator</a></li>
			</ul>


			<h3>Exceptions</h3>
			<ul>
				<li><a href="class-LoggerException.html">LoggerException</a></li>
			</ul>


		</div>
	</div>
</div>

<div id="splitter"></div>

<div id="right">
<div id="rightInner">
	<form id="search">
		<input type="hidden" name="cx" value="" />
		<input type="hidden" name="ie" value="UTF-8" />
		<input type="text" name="q" class="text" />
		<input type="submit" value="Search" />
	</form>

	<div id="navigation">
		<ul>
			<li>
				<a href="index.html" title="Overview"><span>Overview</span></a>
			</li>
			<li>
				<a href="package-log4php.html" title="Summary of log4php"><span>Package</span></a>
			</li>
			<li class="active">
<span>Class</span>			</li>
		</ul>
		<ul>
			<li>
				<a href="tree.html" title="Tree view of classes, interfaces, traits and exceptions"><span>Tree</span></a>
			</li>
		</ul>
		<ul>
		</ul>
	</div>

<div id="content" class="class">
	<h1>Class LoggerMDC</h1>


	<div class="description">
	
<p>The LoggerMDC class provides _mapped diagnostic contexts_.</p>

<p>A Mapped Diagnostic Context, or MDC in short, is an instrument for
distinguishing interleaved log output from different sources. Log output is
typically interleaved when a server handles multiple clients
near-simultaneously.</p>

<p>This class is similar to the <code><a href="class-LoggerNDC.html">LoggerNDC</a></code> class except that it is based
on a map instead of a stack.</p>

	</div>









	<div class="info">
		
		
		
		<b>Package:</b> <a href="package-log4php.html">log4php</a><br />

				<b>Version:</b>
				$Revision: 1343630 $<br />
				<b>Since:</b>
				0.3<br />
		<b>Located at</b> <a href="source-class-LoggerMDC.html#21-88" title="Go to source code">LoggerMDC.php</a><br />
	</div>



	<table class="summary" id="methods">
	<caption>Methods summary</caption>
	<tr data-order="put" id="_put">

		<td class="attributes"><code>
			 public static
			
			
			</code>
		</td>

		<td class="name"><div>
		<a class="anchor" href="#_put">#</a>
		<code><a href="source-class-LoggerMDC.html#41-50" title="Go to source code">put</a>( <span>string <var>$key</var></span>, <span>string <var>$value</var></span> )</code>

		<div class="description short">
			
<p>Stores a context value as identified with the key parameter into the context
map.</p>

		</div>

		<div class="description detailed hidden">
			
<p>Stores a context value as identified with the key parameter into the context
map.</p>



				<h4>Parameters</h4>
				<div class="list"><dl>
					<dt><var>$key</var></dt>
					<dd><code>string</code><br>$key the key</dd>
					<dt><var>$value</var></dt>
					<dd><code>string</code><br>$value the value</dd>
				</dl></div>





		</div>
		</div></td>
	</tr>
	<tr data-order="get" id="_get">

		<td class="attributes"><code>
			 public static
			string
			
			</code>
		</td>

		<td class="name"><div>
		<a class="anchor" href="#_get">#</a>
		<code><a href="source-class-LoggerMDC.html#52-61" title="Go to source code">get</a>( <span>string <var>$key</var></span> )</code>

		<div class="description short">
			
<p>Returns the context value identified by the key parameter.</p>

		</div>

		<div class="description detailed hidden">
			
<p>Returns the context value identified by the key parameter.</p>



				<h4>Parameters</h4>
				<div class="list"><dl>
					<dt><var>$key</var></dt>
					<dd><code>string</code><br>$key The key.</dd>
				</dl></div>

				<h4>Returns</h4>
				<div class="list">
					<code>string</code><br>The context or an empty string if no context found for given key.<br />
				</div>




		</div>
		</div></td>
	</tr>
	<tr data-order="getMap" id="_getMap">

		<td class="attributes"><code>
			 public static
			array
			
			</code>
		</td>

		<td class="name"><div>
		<a class="anchor" href="#_getMap">#</a>
		<code><a href="source-class-LoggerMDC.html#63-69" title="Go to source code">getMap</a>( )</code>

		<div class="description short">
			
<p>Returns the contex map as an array.</p>

		</div>

		<div class="description detailed hidden">
			
<p>Returns the contex map as an array.</p>




				<h4>Returns</h4>
				<div class="list">
					<code>array</code><br>The MDC context map.<br />
				</div>




		</div>
		</div></td>
	</tr>
	<tr data-order="remove" id="_remove">

		<td class="attributes"><code>
			 public static
			
			
			</code>
		</td>

		<td class="name"><div>
		<a class="anchor" href="#_remove">#</a>
		<code><a href="source-class-LoggerMDC.html#71-80" title="Go to source code">remove</a>( <span>string <var>$key</var></span> )</code>

		<div class="description short">
			
<p>Removes the the context identified by the key parameter.</p>

		</div>

		<div class="description detailed hidden">
			
<p>Removes the the context identified by the key parameter.</p>

<p>Only affects user mappings, not $_ENV or $_SERVER.</p>



				<h4>Parameters</h4>
				<div class="list"><dl>
					<dt><var>$key</var></dt>
					<dd><code>string</code><br>$key The key to be removed.</dd>
				</dl></div>





		</div>
		</div></td>
	</tr>
	<tr data-order="clear" id="_clear">

		<td class="attributes"><code>
			 public static
			
			
			</code>
		</td>

		<td class="name"><div>
		<a class="anchor" href="#_clear">#</a>
		<code><a href="source-class-LoggerMDC.html#82-87" title="Go to source code">clear</a>( )</code>

		<div class="description short">
			
<p>Clears the mapped diagnostic context.</p>

		</div>

		<div class="description detailed hidden">
			
<p>Clears the mapped diagnostic context.</p>








		</div>
		</div></td>
	</tr>
	</table>


















</div>

	<div id="footer">
		Apache log4php API documentation generated by <a href="http://apigen.org">ApiGen 2.8.0</a>
	</div>
</div>
</div>
</body>
</html>
