<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  <html xmlns="http://www.w3.org/1999/xhtml">
		<head>
			<!-- template designed by Marco Von Ballmoos  -->
			<title>Docs For Class LoggerLocationPatternConverter</title>
			<link rel="stylesheet" href="../../media/stylesheet.css" />
						<script src="../../media/lib/classTree.js"></script>
												<script language="javascript" type="text/javascript">
				var imgPlus = new Image();
				var imgMinus = new Image();
				imgPlus.src = "../../media/images/plus.png";
				imgMinus.src = "../../media/images/minus.png";
				
				function showNode(Node){
							switch(navigator.family){
								case 'nn4':
									// Nav 4.x code fork...
							var oTable = document.layers["span" + Node];
							var oImg = document.layers["img" + Node];
									break;
								case 'ie4':
									// IE 4/5 code fork...
							var oTable = document.all["span" + Node];
							var oImg = document.all["img" + Node];
									break;
								case 'gecko':
									// Standards Compliant code fork...
							var oTable = document.getElementById("span" + Node);
							var oImg = document.getElementById("img" + Node);
									break;
							}
					oImg.src = imgMinus.src;
					oTable.style.display = "block";
				}
				
				function hideNode(Node){
							switch(navigator.family){
								case 'nn4':
									// Nav 4.x code fork...
							var oTable = document.layers["span" + Node];
							var oImg = document.layers["img" + Node];
									break;
								case 'ie4':
									// IE 4/5 code fork...
							var oTable = document.all["span" + Node];
							var oImg = document.all["img" + Node];
									break;
								case 'gecko':
									// Standards Compliant code fork...
							var oTable = document.getElementById("span" + Node);
							var oImg = document.getElementById("img" + Node);
									break;
							}
					oImg.src = imgPlus.src;
					oTable.style.display = "none";
				}
				
				function nodeIsVisible(Node){
							switch(navigator.family){
								case 'nn4':
									// Nav 4.x code fork...
							var oTable = document.layers["span" + Node];
									break;
								case 'ie4':
									// IE 4/5 code fork...
							var oTable = document.all["span" + Node];
									break;
								case 'gecko':
									// Standards Compliant code fork...
							var oTable = document.getElementById("span" + Node);
									break;
							}
					return (oTable && oTable.style.display == "block");
				}
				
				function toggleNodeVisibility(Node){
					if (nodeIsVisible(Node)){
						hideNode(Node);
					}else{
						showNode(Node);
					}
				}
			</script>
					</head>
		<body>
			<div class="page-body">			
<h2 class="class-name">Class LoggerLocationPatternConverter</h2>

<a name="sec-description"></a>
<div class="info-box">
	<div class="info-box-title">Description</div>
	<div class="nav-bar">
					<span class="disabled">Description</span> |
													<a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
						|											<a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
						
					</div>
	<div class="info-box-body">
        		<!-- ========== Info from phpDoc block ========= -->
	<ul class="tags">
				<li><span class="field">version:</span> $Revision: 1166187 $</li>
			</ul>
		<p class="notes">
			Located in <a class="field" href="_helpers---LoggerLocationPatternConverter.php.html">/helpers/LoggerLocationPatternConverter.php</a> (line <span class="field">25</span>)
		</p>
		
				
		<pre><a href="../../log4php/helpers/LoggerPatternConverter.html">LoggerPatternConverter</a>
   |
   --LoggerLocationPatternConverter</pre>
	
			</div>
</div>



	<a name="sec-var-summary"></a>
	<div class="info-box">
		<div class="info-box-title">Variable Summary</span></div>
		<div class="nav-bar">
			<a href="#sec-description">Description</a> |
						<span class="disabled">Vars</span> (<a href="#sec-vars">details</a>)
							| 
									<a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
							
								</div>
		<div class="info-box-body">
			<div class="var-summary">
																								<div class="var-title">
					<span class="var-type">integer</span>
					<a href="#$type" title="details" class="var-name">$type</a>
				</div>
											</div>
		</div>
	</div>

	<a name="sec-method-summary"></a>
	<div class="info-box">
		<div class="info-box-title">Method Summary</span></div>
		<div class="nav-bar">
			<a href="#sec-description">Description</a> |
																		<a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
				 
				|
						<span class="disabled">Methods</span> (<a href="#sec-methods">details</a>)
		</div>
		<div class="info-box-body">			
			<div class="method-summary">
																														
				<div class="method-definition">
											<span class="method-result">LoggerLocationPatternConverter</span>
										<a href="#__construct" title="details" class="method-name">__construct</a>
											(<span class="var-type">string</span>&nbsp;<span class="var-name">$formattingInfo</span>, <span class="var-type">integer</span>&nbsp;<span class="var-name">$type</span>)
									</div>
														
				<div class="method-definition">
											<span class="method-result">string</span>
										<a href="#convert" title="details" class="method-name">convert</a>
											(<span class="var-type"><a href="../../log4php/LoggerLoggingEvent.html">LoggerLoggingEvent</a></span>&nbsp;<span class="var-name">$event</span>)
									</div>
											</div>
		</div>
	</div>		

	<a name="sec-vars"></a>
	<div class="info-box">
		<div class="info-box-title">Variables</div>
		<div class="nav-bar">
			<a href="#sec-description">Description</a> |
										<a href="#sec-var-summary">Vars</a> (<span class="disabled">details</span>)
						
			
										| 
									<a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
							
					</div>
		<div class="info-box-body">
			<a name="var$type" id="$type"><!-- --></A>
<div class="evenrow">

	<div class="var-header">
		<span class="var-title">
			<span class="var-type">integer</span>
			<span class="var-name">$type</span>
						(line <span class="line-number">30</span>)
		</span>
	</div>

	<!-- ========== Info from phpDoc block ========= -->
	<ul class="tags">
				<li><span class="field">access:</span> private</li>
			</ul>
	
	
		
		

</div>
							<h4>Inherited Variables</h4>
				<A NAME='inherited_vars'><!-- --></A>
									<p>Inherited from <span class="classname"><a href="../../log4php/helpers/LoggerPatternConverter.html">LoggerPatternConverter</a></span></p>
					<blockquote>
													<span class="var-title">
								<span class="var-name"><a href="../../log4php/helpers/LoggerPatternConverter.html#var$leftAlign">LoggerPatternConverter::$leftAlign</a></span><br>
							</span>
													<span class="var-title">
								<span class="var-name"><a href="../../log4php/helpers/LoggerPatternConverter.html#var$max">LoggerPatternConverter::$max</a></span><br>
							</span>
													<span class="var-title">
								<span class="var-name"><a href="../../log4php/helpers/LoggerPatternConverter.html#var$min">LoggerPatternConverter::$min</a></span><br>
							</span>
													<span class="var-title">
								<span class="var-name"><a href="../../log4php/helpers/LoggerPatternConverter.html#var$next">LoggerPatternConverter::$next</a></span><br>
							</span>
													<span class="var-title">
								<span class="var-name"><a href="../../log4php/helpers/LoggerPatternConverter.html#var$spaces">LoggerPatternConverter::$spaces</a></span><br>
							</span>
											</blockquote> 
										
		</div>
	</div>
	
	<a name="sec-methods"></a>
	<div class="info-box">
		<div class="info-box-title">Methods</div>
		<div class="nav-bar">
			<a href="#sec-description">Description</a> |
															<a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
																	<a href="#sec-method-summary">Methods</a> (<span class="disabled">details</span>)
						
		</div>
		<div class="info-box-body">
			<A NAME='method_detail'></A>
<a name="method__construct" id="__construct"><!-- --></a>
<div class="oddrow">
	
	<div class="method-header">
		<span class="method-title">Constructor __construct</span> (line <span class="line-number">38</span>)
	</div> 
	
	<!-- ========== Info from phpDoc block ========= -->
<p class="short-description">Constructor</p>
	<ul class="tags">
				<li><span class="field">access:</span> public</li>
			</ul>
	
	<div class="method-signature">
		<span class="method-result">LoggerLocationPatternConverter</span>
		<span class="method-name">
			__construct
		</span>
					(<span class="var-type">string</span>&nbsp;<span class="var-name">$formattingInfo</span>, <span class="var-type">integer</span>&nbsp;<span class="var-name">$type</span>)
			</div>
	
			<ul class="parameters">
					<li>
				<span class="var-type">string</span>
				<span class="var-name">$formattingInfo</span>			</li>
					<li>
				<span class="var-type">integer</span>
				<span class="var-name">$type</span>			</li>
				</ul>
		
			<hr class="separator" />
		<div class="notes">Redefinition of:</div>
		<dl>
			<dt><a href="../../log4php/helpers/LoggerPatternConverter.html#method__construct">LoggerPatternConverter::__construct()</a></dt>
						<dd>Constructor</dd>
					</dl>
			
	</div>
<a name="methodconvert" id="convert"><!-- --></a>
<div class="evenrow">
	
	<div class="method-header">
		<span class="method-title">convert</span> (line <span class="line-number">47</span>)
	</div> 
	
	<!-- ========== Info from phpDoc block ========= -->
	<ul class="tags">
				<li><span class="field">access:</span> public</li>
			</ul>
	
	<div class="method-signature">
		<span class="method-result">string</span>
		<span class="method-name">
			convert
		</span>
					(<span class="var-type"><a href="../../log4php/LoggerLoggingEvent.html">LoggerLoggingEvent</a></span>&nbsp;<span class="var-name">$event</span>)
			</div>
	
			<ul class="parameters">
					<li>
				<span class="var-type"><a href="../../log4php/LoggerLoggingEvent.html">LoggerLoggingEvent</a></span>
				<span class="var-name">$event</span>			</li>
				</ul>
		
			<hr class="separator" />
		<div class="notes">Redefinition of:</div>
		<dl>
			<dt><a href="../../log4php/helpers/LoggerPatternConverter.html#methodconvert">LoggerPatternConverter::convert()</a></dt>
						<dd>Derived pattern converters must override this method in order to  convert conversion specifiers in the correct way.</dd>
					</dl>
			
	</div>
							<h4>Inherited Methods</h4>
				<a name='inherited_methods'><!-- --></a>	
									<!-- =========== Summary =========== -->
					<p>Inherited From <span class="classname"><a href="../../log4php/helpers/LoggerPatternConverter.html">LoggerPatternConverter</a></span></p>
					<blockquote>
													<span class="method-name"><a href="../../log4php/helpers/LoggerPatternConverter.html#method__construct">LoggerPatternConverter::__construct()</a></span><br>
													<span class="method-name"><a href="../../log4php/helpers/LoggerPatternConverter.html#methodconvert">LoggerPatternConverter::convert()</a></span><br>
													<span class="method-name"><a href="../../log4php/helpers/LoggerPatternConverter.html#methodformat">LoggerPatternConverter::format()</a></span><br>
													<span class="method-name"><a href="../../log4php/helpers/LoggerPatternConverter.html#methodspacePad">LoggerPatternConverter::spacePad()</a></span><br>
											</blockquote>
										
		</div>
	</div>


	<p class="notes" id="credit">
		Documentation generated on Sat, 18 Feb 2012 22:32:25 +0000 by <a href="http://www.phpdoc.org" target="_blank">phpDocumentor 1.4.3</a>
	</p>
	</div></body>
</html>