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

	<title>File LoggerLayout.php | 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 class="active"><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><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>
				<a href="class-LoggerLayout.html" title="Summary of LoggerLayout"><span>Class</span></a>
			</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>

<pre><code><span id="1" class="l"><a class="l" href="#1"> 1: </a><span class="xlang">&lt;?php</span>
</span><span id="2" class="l"><a class="l" href="#2"> 2: </a><span class="php-comment">/**
</span></span><span id="3" class="l"><a class="l" href="#3"> 3: </a><span class="php-comment"> * Licensed to the Apache Software Foundation (ASF) under one or more
</span></span><span id="4" class="l"><a class="l" href="#4"> 4: </a><span class="php-comment"> * contributor license agreements. See the NOTICE file distributed with
</span></span><span id="5" class="l"><a class="l" href="#5"> 5: </a><span class="php-comment"> * this work for additional information regarding copyright ownership.
</span></span><span id="6" class="l"><a class="l" href="#6"> 6: </a><span class="php-comment"> * The ASF licenses this file to You under the Apache License, Version 2.0
</span></span><span id="7" class="l"><a class="l" href="#7"> 7: </a><span class="php-comment"> * (the &quot;License&quot;); you may not use this file except in compliance with
</span></span><span id="8" class="l"><a class="l" href="#8"> 8: </a><span class="php-comment"> * the License. You may obtain a copy of the License at
</span></span><span id="9" class="l"><a class="l" href="#9"> 9: </a><span class="php-comment"> *
</span></span><span id="10" class="l"><a class="l" href="#10">10: </a><span class="php-comment"> *     http://www.apache.org/licenses/LICENSE-2.0
</span></span><span id="11" class="l"><a class="l" href="#11">11: </a><span class="php-comment"> *
</span></span><span id="12" class="l"><a class="l" href="#12">12: </a><span class="php-comment"> * Unless required by applicable law or agreed to in writing, software
</span></span><span id="13" class="l"><a class="l" href="#13">13: </a><span class="php-comment"> * distributed under the License is distributed on an &quot;AS IS&quot; BASIS,
</span></span><span id="14" class="l"><a class="l" href="#14">14: </a><span class="php-comment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
</span></span><span id="15" class="l"><a class="l" href="#15">15: </a><span class="php-comment"> * See the License for the specific language governing permissions and
</span></span><span id="16" class="l"><a class="l" href="#16">16: </a><span class="php-comment"> * limitations under the License.
</span></span><span id="17" class="l"><a class="l" href="#17">17: </a><span class="php-comment"> *
</span></span><span id="18" class="l"><a class="l" href="#18">18: </a><span class="php-comment"> * @package log4php
</span></span><span id="19" class="l"><a class="l" href="#19">19: </a><span class="php-comment"> */</span>
</span><span id="20" class="l"><a class="l" href="#20">20: </a>
</span><span id="21" class="l"><a class="l" href="#21">21: </a><span class="php-comment">/**
</span></span><span id="22" class="l"><a class="l" href="#22">22: </a><span class="php-comment"> * Extend this abstract class to create your own log layout format.
</span></span><span id="23" class="l"><a class="l" href="#23">23: </a><span class="php-comment"> *  
</span></span><span id="24" class="l"><a class="l" href="#24">24: </a><span class="php-comment"> * @version $Revision: 1213283 $
</span></span><span id="25" class="l"><a class="l" href="#25">25: </a><span class="php-comment"> * @package log4php
</span></span><span id="26" class="l"><a class="l" href="#26">26: </a><span class="php-comment"> */</span>
</span><span id="27" class="l"><a class="l" href="#27">27: </a><span class="php-keyword1">abstract</span> <span class="php-keyword1">class</span> <a id="LoggerLayout" href="#LoggerLayout">LoggerLayout</a> <span class="php-keyword1">extends</span> LoggerConfigurable {
</span><span id="28" class="l"><a class="l" href="#28">28: </a>    <span class="php-comment">/**
</span></span><span id="29" class="l"><a class="l" href="#29">29: </a><span class="php-comment">     * Activates options for this layout.
</span></span><span id="30" class="l"><a class="l" href="#30">30: </a><span class="php-comment">     * Override this method if you have options to be activated.
</span></span><span id="31" class="l"><a class="l" href="#31">31: </a><span class="php-comment">     */</span>
</span><span id="32" class="l"><a class="l" href="#32">32: </a>    <span class="php-keyword1">public</span> <span class="php-keyword1">function</span> <a id="_activateOptions" href="#_activateOptions">activateOptions</a>() {
</span><span id="33" class="l"><a class="l" href="#33">33: </a>        <span class="php-keyword1">return</span> <span class="php-keyword1">true</span>;
</span><span id="34" class="l"><a class="l" href="#34">34: </a>    }
</span><span id="35" class="l"><a class="l" href="#35">35: </a>
</span><span id="36" class="l"><a class="l" href="#36">36: </a>    <span class="php-comment">/**
</span></span><span id="37" class="l"><a class="l" href="#37">37: </a><span class="php-comment">     * Override this method to create your own layout format.
</span></span><span id="38" class="l"><a class="l" href="#38">38: </a><span class="php-comment">     *
</span></span><span id="39" class="l"><a class="l" href="#39">39: </a><span class="php-comment">     * @param LoggerLoggingEvent
</span></span><span id="40" class="l"><a class="l" href="#40">40: </a><span class="php-comment">     * @return string
</span></span><span id="41" class="l"><a class="l" href="#41">41: </a><span class="php-comment">     */</span>
</span><span id="42" class="l"><a class="l" href="#42">42: </a>    <span class="php-keyword1">public</span> <span class="php-keyword1">function</span> <a id="_format" href="#_format">format</a>(LoggerLoggingEvent <span class="php-var">$event</span>) {
</span><span id="43" class="l"><a class="l" href="#43">43: </a>        <span class="php-keyword1">return</span> <span class="php-var">$event</span>-&gt;getRenderedMessage();
</span><span id="44" class="l"><a class="l" href="#44">44: </a>    } 
</span><span id="45" class="l"><a class="l" href="#45">45: </a>    
</span><span id="46" class="l"><a class="l" href="#46">46: </a>    <span class="php-comment">/**
</span></span><span id="47" class="l"><a class="l" href="#47">47: </a><span class="php-comment">     * Returns the content type output by this layout.
</span></span><span id="48" class="l"><a class="l" href="#48">48: </a><span class="php-comment">     * @return string
</span></span><span id="49" class="l"><a class="l" href="#49">49: </a><span class="php-comment">     */</span>
</span><span id="50" class="l"><a class="l" href="#50">50: </a>    <span class="php-keyword1">public</span> <span class="php-keyword1">function</span> <a id="_getContentType" href="#_getContentType">getContentType</a>() {
</span><span id="51" class="l"><a class="l" href="#51">51: </a>        <span class="php-keyword1">return</span> <span class="php-quote">&quot;text/plain&quot;</span>;
</span><span id="52" class="l"><a class="l" href="#52">52: </a>    } 
</span><span id="53" class="l"><a class="l" href="#53">53: </a>            
</span><span id="54" class="l"><a class="l" href="#54">54: </a>    <span class="php-comment">/**
</span></span><span id="55" class="l"><a class="l" href="#55">55: </a><span class="php-comment">     * Returns the footer for the layout format.
</span></span><span id="56" class="l"><a class="l" href="#56">56: </a><span class="php-comment">     * @return string
</span></span><span id="57" class="l"><a class="l" href="#57">57: </a><span class="php-comment">     */</span>
</span><span id="58" class="l"><a class="l" href="#58">58: </a>    <span class="php-keyword1">public</span> <span class="php-keyword1">function</span> <a id="_getFooter" href="#_getFooter">getFooter</a>() {
</span><span id="59" class="l"><a class="l" href="#59">59: </a>        <span class="php-keyword1">return</span> <span class="php-keyword1">null</span>;
</span><span id="60" class="l"><a class="l" href="#60">60: </a>    } 
</span><span id="61" class="l"><a class="l" href="#61">61: </a>
</span><span id="62" class="l"><a class="l" href="#62">62: </a>    <span class="php-comment">/**
</span></span><span id="63" class="l"><a class="l" href="#63">63: </a><span class="php-comment">     * Returns the header for the layout format.
</span></span><span id="64" class="l"><a class="l" href="#64">64: </a><span class="php-comment">     * @return string
</span></span><span id="65" class="l"><a class="l" href="#65">65: </a><span class="php-comment">     */</span>
</span><span id="66" class="l"><a class="l" href="#66">66: </a>    <span class="php-keyword1">public</span> <span class="php-keyword1">function</span> <a id="_getHeader" href="#_getHeader">getHeader</a>() {
</span><span id="67" class="l"><a class="l" href="#67">67: </a>        <span class="php-keyword1">return</span> <span class="php-keyword1">null</span>;
</span><span id="68" class="l"><a class="l" href="#68">68: </a>    }
</span><span id="69" class="l"><a class="l" href="#69">69: </a>    
</span><span id="70" class="l"><a class="l" href="#70">70: </a>    <span class="php-comment">/** Triggers a warning for this layout with the given message. */</span>
</span><span id="71" class="l"><a class="l" href="#71">71: </a>    <span class="php-keyword1">protected</span> <span class="php-keyword1">function</span> <a id="_warn" href="#_warn">warn</a>(<span class="php-var">$message</span>) {
</span><span id="72" class="l"><a class="l" href="#72">72: </a>        <span class="php-keyword2">trigger_error</span>(<span class="php-quote">&quot;log4php: [&quot;</span> . <span class="php-keyword2">get_class</span>(<span class="php-var">$this</span>) . <span class="php-quote">&quot;]: </span><span class="php-var">$message</span><span class="php-quote">&quot;</span>, E_USER_WARNING);
</span><span id="73" class="l"><a class="l" href="#73">73: </a>    }
</span><span id="74" class="l"><a class="l" href="#74">74: </a>}
</span><span id="75" class="l"><a class="l" href="#75">75: </a></span></code></pre>

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