blob: 6e1b03c9e22cde07931057140347d07b7bd324f4 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>LoggerLayoutPattern.php</title>
<link rel="stylesheet" type="text/css" href="style.css">
<link rel="stylesheet" type="text/css" href="container.css">
<script type="text/javascript" src="yahoo-dom-event.js"></script>
<script type="text/javascript" src="container-min.js"></script>
</head>
<body class="yui-skin-sam">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr><td class="title">LoggerLayoutPattern.php</td></tr>
<tr><td class="ruler"><img src="glass.png" width="3" height="3" alt=""></td></tr>
<tr>
<td width="100%">
<table cellpadding="1" border="0" width="100%">
<tr>
<td class="headerItem" width="20%">Current file:</td>
<td class="headerValue" width="80%"><a href="index.html">/home/ihabunek/apache/log4php/src/main/php</a>/<a href="layouts.html">layouts</a>/<a href="layouts_LoggerLayoutPattern.php.html">LoggerLayoutPattern.php</a></td>
</tr>
<tr>
<td class="legendItem" width="20%">Legend:</td>
<td class="legendValue" width="80%">
<span class="legendCov">executed</span>
<span class="legendNoCov">not executed</span>
<span class="legendDeadCode">dead code</span>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td class="ruler"><img src="glass.png" width="3" height="3" alt=""></td>
</tr>
</table>
<br />
<center>
<table width="90%" cellpadding="2" cellspacing="1" border="0">
<tr>
<td class="tableHead" width="30%">&nbsp;</td>
<td class="tableHead" colspan="10">Coverage</td>
</tr>
<tr>
<td class="tableHead">&nbsp;</td>
<td class="tableHead" colspan="3">Classes</td>
<td class="tableHead" colspan="4">Functions / Methods</td>
<td class="tableHead" colspan="3">Lines</td>
</tr>
<tr>
<td class="coverDirectory">Total</td>
<td class="coverBar">
<div class="coverBarOutline" title="100.00%">
<div class="size chameleon" style="width:100%" title="100.00%"></div>
</div>
</td>
<td class="coverPerHi">100.00%</td>
<td class="coverNumHi">1 / 1</td>
<td class="coverBar">
<div class="coverBarOutline" title="100.00%">
<div class="size chameleon" style="width:100%" title="100.00%"></div>
</div>
</td>
<td class="coverPerHi">100.00%</td>
<td class="coverNumHi">3 / 3</td>
<td class="crap"><acronym title="Change Risk Anti-Patterns (CRAP) Index">CRAP</acronym></td>
<td class="coverBar">
<div class="coverBarOutline" title="100.00%">
<div class="size chameleon" style="width:100%" title="100.00%"></div>
</div>
</td>
<td class="coverPerHi">100.00%</td>
<td class="coverNumHi">22 / 22</td>
</tr>
<tr>
<td class="coverDirectory">LoggerLayoutPattern</td>
<td class="coverBar">
<div class="coverBarOutline" title="100.00%">
<div class="size chameleon" style="width:100%" title="100.00%"></div>
</div>
</td>
<td class="coverPerHi">100.00%</td>
<td class="coverNumHi">1 / 1</td>
<td class="coverBar">
<div class="coverBarOutline" title="100.00%">
<div class="size chameleon" style="width:100%" title="100.00%"></div>
</div>
</td>
<td class="coverPerHi">100.00%</td>
<td class="coverNumHi">3 / 3</td>
<td class="crap">6</td>
<td class="coverBar">
<div class="coverBarOutline" title="100.00%">
<div class="size chameleon" style="width:100%" title="100.00%"></div>
</div>
</td>
<td class="coverPerHi">100.00%</td>
<td class="coverNumHi">22 / 22</td>
</tr>
<tr>
<td class="coverFile" colspan="4">&nbsp;<a href="#159">setConversionPattern($conversionPattern)</a></td>
<td class="coverBar">
<div class="coverBarOutline" title="100.00%">
<div class="size chameleon" style="width:100%" title="100.00%"></div>
</div>
</td>
<td class="coverPerHi">100.00%</td>
<td class="coverNumHi">1 / 1</td>
<td class="crap">1</td>
<td class="coverBar">
<div class="coverBarOutline" title="100.00%">
<div class="size chameleon" style="width:100%" title="100.00%"></div>
</div>
</td>
<td class="coverPerHi">100.00%</td>
<td class="coverNumHi">4 / 4</td>
</tr>
<tr>
<td class="coverFile" colspan="4">&nbsp;<a href="#171">format(LoggerLoggingEvent $event)</a></td>
<td class="coverBar">
<div class="coverBarOutline" title="100.00%">
<div class="size chameleon" style="width:100%" title="100.00%"></div>
</div>
</td>
<td class="coverPerHi">100.00%</td>
<td class="coverNumHi">1 / 1</td>
<td class="crap">2</td>
<td class="coverBar">
<div class="coverBarOutline" title="100.00%">
<div class="size chameleon" style="width:100%" title="100.00%"></div>
</div>
</td>
<td class="coverPerHi">100.00%</td>
<td class="coverNumHi">7 / 7</td>
</tr>
<tr>
<td class="coverFile" colspan="4">&nbsp;<a href="#191">formatToArray(LoggerLoggingEvent $event)</a></td>
<td class="coverBar">
<div class="coverBarOutline" title="100.00%">
<div class="size chameleon" style="width:100%" title="100.00%"></div>
</div>
</td>
<td class="coverPerHi">100.00%</td>
<td class="coverNumHi">1 / 1</td>
<td class="crap">3</td>
<td class="coverBar">
<div class="coverBarOutline" title="100.00%">
<div class="size chameleon" style="width:100%" title="100.00%"></div>
</div>
</td>
<td class="coverPerHi">100.00%</td>
<td class="coverNumHi">11 / 11</td>
</tr>
</table>
</center>
<br />
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td><br /></td>
</tr>
<tr>
<td>
<pre class="source">
<span class="lineNum" id="container1"><a name="1"></a><a href="#1" id="line1"> 1</a> </span> : &lt;?php
<span class="lineNum" id="container2"><a name="2"></a><a href="#2" id="line2"> 2</a> </span> : /**
<span class="lineNum" id="container3"><a name="3"></a><a href="#3" id="line3"> 3</a> </span> : * Licensed to the Apache Software Foundation (ASF) under one or more
<span class="lineNum" id="container4"><a name="4"></a><a href="#4" id="line4"> 4</a> </span> : * contributor license agreements. See the NOTICE file distributed with
<span class="lineNum" id="container5"><a name="5"></a><a href="#5" id="line5"> 5</a> </span> : * this work for additional information regarding copyright ownership.
<span class="lineNum" id="container6"><a name="6"></a><a href="#6" id="line6"> 6</a> </span> : * The ASF licenses this file to You under the Apache License, Version 2.0
<span class="lineNum" id="container7"><a name="7"></a><a href="#7" id="line7"> 7</a> </span> : * (the &quot;License&quot;); you may not use this file except in compliance with
<span class="lineNum" id="container8"><a name="8"></a><a href="#8" id="line8"> 8</a> </span> : * the License. You may obtain a copy of the License at
<span class="lineNum" id="container9"><a name="9"></a><a href="#9" id="line9"> 9</a> </span> : *
<span class="lineNum" id="container10"><a name="10"></a><a href="#10" id="line10"> 10</a> </span> : * http://www.apache.org/licenses/LICENSE-2.0
<span class="lineNum" id="container11"><a name="11"></a><a href="#11" id="line11"> 11</a> </span> : *
<span class="lineNum" id="container12"><a name="12"></a><a href="#12" id="line12"> 12</a> </span> : * Unless required by applicable law or agreed to in writing, software
<span class="lineNum" id="container13"><a name="13"></a><a href="#13" id="line13"> 13</a> </span> : * distributed under the License is distributed on an &quot;AS IS&quot; BASIS,
<span class="lineNum" id="container14"><a name="14"></a><a href="#14" id="line14"> 14</a> </span> : * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
<span class="lineNum" id="container15"><a name="15"></a><a href="#15" id="line15"> 15</a> </span> : * See the License for the specific language governing permissions and
<span class="lineNum" id="container16"><a name="16"></a><a href="#16" id="line16"> 16</a> </span> : * limitations under the License.
<span class="lineNum" id="container17"><a name="17"></a><a href="#17" id="line17"> 17</a> </span> : *
<span class="lineNum" id="container18"><a name="18"></a><a href="#18" id="line18"> 18</a> </span> : * @package log4php
<span class="lineNum" id="container19"><a name="19"></a><a href="#19" id="line19"> 19</a> </span> : */
<span class="lineNum" id="container20"><a name="20"></a><a href="#20" id="line20"> 20</a> </span> :
<span class="lineNum" id="container21"><a name="21"></a><a href="#21" id="line21"> 21</a> </span> : /**
<span class="lineNum" id="container22"><a name="22"></a><a href="#22" id="line22"> 22</a> </span> : * A flexible layout configurable with pattern string.
<span class="lineNum" id="container23"><a name="23"></a><a href="#23" id="line23"> 23</a> </span> : *
<span class="lineNum" id="container24"><a name="24"></a><a href="#24" id="line24"> 24</a> </span> : * &lt;p&gt;Example:&lt;/p&gt;
<span class="lineNum" id="container25"><a name="25"></a><a href="#25" id="line25"> 25</a> </span> : *
<span class="lineNum" id="container26"><a name="26"></a><a href="#26" id="line26"> 26</a> </span> : * {@example ../../examples/php/layout_pattern.php 19}&lt;br&gt;
<span class="lineNum" id="container27"><a name="27"></a><a href="#27" id="line27"> 27</a> </span> : *
<span class="lineNum" id="container28"><a name="28"></a><a href="#28" id="line28"> 28</a> </span> : * &lt;p&gt;with the following properties file:&lt;/p&gt;
<span class="lineNum" id="container29"><a name="29"></a><a href="#29" id="line29"> 29</a> </span> : *
<span class="lineNum" id="container30"><a name="30"></a><a href="#30" id="line30"> 30</a> </span> : * {@example ../../examples/resources/layout_pattern.properties 18}&lt;br&gt;
<span class="lineNum" id="container31"><a name="31"></a><a href="#31" id="line31"> 31</a> </span> : *
<span class="lineNum" id="container32"><a name="32"></a><a href="#32" id="line32"> 32</a> </span> : * &lt;p&gt;would print the following:&lt;/p&gt;
<span class="lineNum" id="container33"><a name="33"></a><a href="#33" id="line33"> 33</a> </span> : *
<span class="lineNum" id="container34"><a name="34"></a><a href="#34" id="line34"> 34</a> </span> : * &lt;pre&gt;
<span class="lineNum" id="container35"><a name="35"></a><a href="#35" id="line35"> 35</a> </span> : * 2009-09-09 00:27:35,787 [INFO] root: Hello World! (at src/examples/php/layout_pattern.php line 6)
<span class="lineNum" id="container36"><a name="36"></a><a href="#36" id="line36"> 36</a> </span> : * 2009-09-09 00:27:35,787 [DEBUG] root: Second line (at src/examples/php/layout_pattern.php line 7)
<span class="lineNum" id="container37"><a name="37"></a><a href="#37" id="line37"> 37</a> </span> : * &lt;/pre&gt;
<span class="lineNum" id="container38"><a name="38"></a><a href="#38" id="line38"> 38</a> </span> : *
<span class="lineNum" id="container39"><a name="39"></a><a href="#39" id="line39"> 39</a> </span> : * &lt;p&gt;The conversion pattern is closely related to the conversion pattern of the printf function in C.
<span class="lineNum" id="container40"><a name="40"></a><a href="#40" id="line40"> 40</a> </span> : * A conversion pattern is composed of literal text and format control expressions called conversion specifiers.
<span class="lineNum" id="container41"><a name="41"></a><a href="#41" id="line41"> 41</a> </span> : * You are free to insert any literal text within the conversion pattern.&lt;/p&gt;
<span class="lineNum" id="container42"><a name="42"></a><a href="#42" id="line42"> 42</a> </span> : *
<span class="lineNum" id="container43"><a name="43"></a><a href="#43" id="line43"> 43</a> </span> : * &lt;p&gt;Each conversion specifier starts with a percent sign (%) and is followed by optional
<span class="lineNum" id="container44"><a name="44"></a><a href="#44" id="line44"> 44</a> </span> : * format modifiers and a conversion character.&lt;/p&gt;
<span class="lineNum" id="container45"><a name="45"></a><a href="#45" id="line45"> 45</a> </span> : *
<span class="lineNum" id="container46"><a name="46"></a><a href="#46" id="line46"> 46</a> </span> : * &lt;p&gt;The conversion character specifies the type of data, e.g. category, priority, date, thread name.
<span class="lineNum" id="container47"><a name="47"></a><a href="#47" id="line47"> 47</a> </span> : * The format modifiers control such things as field width, padding, left and right justification.&lt;/p&gt;
<span class="lineNum" id="container48"><a name="48"></a><a href="#48" id="line48"> 48</a> </span> : *
<span class="lineNum" id="container49"><a name="49"></a><a href="#49" id="line49"> 49</a> </span> : * &lt;p&gt;Note that there is no explicit separator between text and conversion specifiers.&lt;/p&gt;
<span class="lineNum" id="container50"><a name="50"></a><a href="#50" id="line50"> 50</a> </span> : *
<span class="lineNum" id="container51"><a name="51"></a><a href="#51" id="line51"> 51</a> </span> : * &lt;p&gt;The pattern parser knows when it has reached the end of a conversion specifier when it reads a conversion character.
<span class="lineNum" id="container52"><a name="52"></a><a href="#52" id="line52"> 52</a> </span> : * In the example above the conversion specifier %-5p means the priority of the logging event should be
<span class="lineNum" id="container53"><a name="53"></a><a href="#53" id="line53"> 53</a> </span> : * left justified to a width of five characters.&lt;/p&gt;
<span class="lineNum" id="container54"><a name="54"></a><a href="#54" id="line54"> 54</a> </span> : *
<span class="lineNum" id="container55"><a name="55"></a><a href="#55" id="line55"> 55</a> </span> : * Not all log4j conversion characters are implemented. The recognized conversion characters are:
<span class="lineNum" id="container56"><a name="56"></a><a href="#56" id="line56"> 56</a> </span> : * - &lt;b&gt;c&lt;/b&gt; Used to output the category of the logging event. The category conversion specifier can be optionally followed by precision specifier, that is a decimal constant in brackets.
<span class="lineNum" id="container57"><a name="57"></a><a href="#57" id="line57"> 57</a> </span> : * If a precision specifier is given, then only the corresponding number of right most components of the category name will be printed.
<span class="lineNum" id="container58"><a name="58"></a><a href="#58" id="line58"> 58</a> </span> : * By default the category name is printed in full.
<span class="lineNum" id="container59"><a name="59"></a><a href="#59" id="line59"> 59</a> </span> : * For example, for the category name &quot;a.b.c&quot; the pattern %c{2} will output &quot;b.c&quot;.
<span class="lineNum" id="container60"><a name="60"></a><a href="#60" id="line60"> 60</a> </span> : * - &lt;b&gt;C&lt;/b&gt; Used to output the fully qualified class name of the caller issuing the logging request.
<span class="lineNum" id="container61"><a name="61"></a><a href="#61" id="line61"> 61</a> </span> : * This conversion specifier can be optionally followed by precision specifier, that is a decimal constant in brackets.
<span class="lineNum" id="container62"><a name="62"></a><a href="#62" id="line62"> 62</a> </span> : * If a precision specifier is given, then only the corresponding number of right most components of the class name will be printed.
<span class="lineNum" id="container63"><a name="63"></a><a href="#63" id="line63"> 63</a> </span> : * By default the class name is output in fully qualified form.
<span class="lineNum" id="container64"><a name="64"></a><a href="#64" id="line64"> 64</a> </span> : * For example, for the class name &quot;org.apache.xyz.SomeClass&quot;, the pattern %C{1} will output &quot;SomeClass&quot;.
<span class="lineNum" id="container65"><a name="65"></a><a href="#65" id="line65"> 65</a> </span> : * - &lt;b&gt;d&lt;/b&gt; Used to output the date of the logging event.
<span class="lineNum" id="container66"><a name="66"></a><a href="#66" id="line66"> 66</a> </span> : * The date conversion specifier may be followed by a date format specifier enclosed between braces.
<span class="lineNum" id="container67"><a name="67"></a><a href="#67" id="line67"> 67</a> </span> : * The format specifier follows the {@link PHP_MANUAL#date} function.
<span class="lineNum" id="container68"><a name="68"></a><a href="#68" id="line68"> 68</a> </span> : * Note that the special character &lt;b&gt;u&lt;/b&gt; is used to as microseconds replacement (to avoid replacement,
<span class="lineNum" id="container69"><a name="69"></a><a href="#69" id="line69"> 69</a> </span> : * use &lt;b&gt;\u&lt;/b&gt;).
<span class="lineNum" id="container70"><a name="70"></a><a href="#70" id="line70"> 70</a> </span> : * For example, %d{H:i:s,u} or %d{d M Y H:i:s,u}. If no date format specifier is given then ISO8601 format is assumed.
<span class="lineNum" id="container71"><a name="71"></a><a href="#71" id="line71"> 71</a> </span> : * The date format specifier admits the same syntax as the time pattern string of the SimpleDateFormat.
<span class="lineNum" id="container72"><a name="72"></a><a href="#72" id="line72"> 72</a> </span> : * It is recommended to use the predefined log4php date formatters.
<span class="lineNum" id="container73"><a name="73"></a><a href="#73" id="line73"> 73</a> </span> : * These can be specified using one of the strings &quot;ABSOLUTE&quot;, &quot;DATE&quot; and &quot;ISO8601&quot; for specifying
<span class="lineNum" id="container74"><a name="74"></a><a href="#74" id="line74"> 74</a> </span> : * AbsoluteTimeDateFormat, DateTimeDateFormat and respectively ISO8601DateFormat.
<span class="lineNum" id="container75"><a name="75"></a><a href="#75" id="line75"> 75</a> </span> : * For example, %d{ISO8601} or %d{ABSOLUTE}.
<span class="lineNum" id="container76"><a name="76"></a><a href="#76" id="line76"> 76</a> </span> : * - &lt;b&gt;F&lt;/b&gt; Used to output the file name where the logging request was issued.
<span class="lineNum" id="container77"><a name="77"></a><a href="#77" id="line77"> 77</a> </span> : * - &lt;b&gt;l&lt;/b&gt; Used to output location information of the caller which generated the logging event.
<span class="lineNum" id="container78"><a name="78"></a><a href="#78" id="line78"> 78</a> </span> : * - &lt;b&gt;L&lt;/b&gt; Used to output the line number from where the logging request was issued.
<span class="lineNum" id="container79"><a name="79"></a><a href="#79" id="line79"> 79</a> </span> : * - &lt;b&gt;m&lt;/b&gt; Used to output the application supplied message associated with the logging event.
<span class="lineNum" id="container80"><a name="80"></a><a href="#80" id="line80"> 80</a> </span> : * - &lt;b&gt;M&lt;/b&gt; Used to output the method name where the logging request was issued.
<span class="lineNum" id="container81"><a name="81"></a><a href="#81" id="line81"> 81</a> </span> : * - &lt;b&gt;p&lt;/b&gt; Used to output the priority of the logging event.
<span class="lineNum" id="container82"><a name="82"></a><a href="#82" id="line82"> 82</a> </span> : * - &lt;b&gt;r&lt;/b&gt; Used to output the number of milliseconds elapsed since the start of
<span class="lineNum" id="container83"><a name="83"></a><a href="#83" id="line83"> 83</a> </span> : * the application until the creation of the logging event.
<span class="lineNum" id="container84"><a name="84"></a><a href="#84" id="line84"> 84</a> </span> : * - &lt;b&gt;t&lt;/b&gt; Used to output the name of the thread that generated the logging event.
<span class="lineNum" id="container85"><a name="85"></a><a href="#85" id="line85"> 85</a> </span> : * - &lt;b&gt;x&lt;/b&gt; Used to output the NDC (nested diagnostic context) associated with
<span class="lineNum" id="container86"><a name="86"></a><a href="#86" id="line86"> 86</a> </span> : * the thread that generated the logging event.
<span class="lineNum" id="container87"><a name="87"></a><a href="#87" id="line87"> 87</a> </span> : * - &lt;b&gt;X&lt;/b&gt; Used to output the MDC (mapped diagnostic context) associated with
<span class="lineNum" id="container88"><a name="88"></a><a href="#88" id="line88"> 88</a> </span> : * the thread that generated the logging event.
<span class="lineNum" id="container89"><a name="89"></a><a href="#89" id="line89"> 89</a> </span> : * The X conversion character must be followed by the key for the map placed between braces,
<span class="lineNum" id="container90"><a name="90"></a><a href="#90" id="line90"> 90</a> </span> : * as in &lt;i&gt;%X{clientNumber}&lt;/i&gt; where clientNumber is the key.
<span class="lineNum" id="container91"><a name="91"></a><a href="#91" id="line91"> 91</a> </span> : * The value in the MDC corresponding to the key will be output.
<span class="lineNum" id="container92"><a name="92"></a><a href="#92" id="line92"> 92</a> </span> : * See {@link LoggerMDC} class for more details.
<span class="lineNum" id="container93"><a name="93"></a><a href="#93" id="line93"> 93</a> </span> : * - &lt;b&gt;%&lt;/b&gt; The sequence %% outputs a single percent sign.
<span class="lineNum" id="container94"><a name="94"></a><a href="#94" id="line94"> 94</a> </span> : *
<span class="lineNum" id="container95"><a name="95"></a><a href="#95" id="line95"> 95</a> </span> : * &lt;p&gt;By default the relevant information is output as is.
<span class="lineNum" id="container96"><a name="96"></a><a href="#96" id="line96"> 96</a> </span> : * However, with the aid of format modifiers it is possible to change the minimum field width,
<span class="lineNum" id="container97"><a name="97"></a><a href="#97" id="line97"> 97</a> </span> : * the maximum field width and justification.&lt;/p&gt;
<span class="lineNum" id="container98"><a name="98"></a><a href="#98" id="line98"> 98</a> </span> : *
<span class="lineNum" id="container99"><a name="99"></a><a href="#99" id="line99"> 99</a> </span> : * &lt;p&gt;The optional format modifier is placed between the percent sign and the conversion character.&lt;/p&gt;
<span class="lineNum" id="container100"><a name="100"></a><a href="#100" id="line100"> 100</a> </span> : * &lt;p&gt;The first optional format modifier is the left justification flag which is just the minus (-) character.
<span class="lineNum" id="container101"><a name="101"></a><a href="#101" id="line101"> 101</a> </span> : * Then comes the optional minimum field width modifier.
<span class="lineNum" id="container102"><a name="102"></a><a href="#102" id="line102"> 102</a> </span> : * This is a decimal constant that represents the minimum number of characters to output.
<span class="lineNum" id="container103"><a name="103"></a><a href="#103" id="line103"> 103</a> </span> : * If the data item requires fewer characters, it is padded on either the left or the right until the minimum width is reached. The default is to pad on the left (right justify) but you can specify right padding with the left justification flag. The padding character is space. If the data item is larger than the minimum field width, the field is expanded to accommodate the data.
<span class="lineNum" id="container104"><a name="104"></a><a href="#104" id="line104"> 104</a> </span> : * The value is never truncated.&lt;/p&gt;
<span class="lineNum" id="container105"><a name="105"></a><a href="#105" id="line105"> 105</a> </span> : *
<span class="lineNum" id="container106"><a name="106"></a><a href="#106" id="line106"> 106</a> </span> : * &lt;p&gt;This behavior can be changed using the maximum field width modifier which is designated by a period
<span class="lineNum" id="container107"><a name="107"></a><a href="#107" id="line107"> 107</a> </span> : * followed by a decimal constant.
<span class="lineNum" id="container108"><a name="108"></a><a href="#108" id="line108"> 108</a> </span> : * If the data item is longer than the maximum field,
<span class="lineNum" id="container109"><a name="109"></a><a href="#109" id="line109"> 109</a> </span> : * then the extra characters are removed from the beginning of the data item and not from the end.
<span class="lineNum" id="container110"><a name="110"></a><a href="#110" id="line110"> 110</a> </span> : * For example, it the maximum field width is eight and the data item is ten characters long,
<span class="lineNum" id="container111"><a name="111"></a><a href="#111" id="line111"> 111</a> </span> : * then the first two characters of the data item are dropped.
<span class="lineNum" id="container112"><a name="112"></a><a href="#112" id="line112"> 112</a> </span> : * This behavior deviates from the printf function in C where truncation is done from the end.&lt;/p&gt;
<span class="lineNum" id="container113"><a name="113"></a><a href="#113" id="line113"> 113</a> </span> : *
<span class="lineNum" id="container114"><a name="114"></a><a href="#114" id="line114"> 114</a> </span> : * &lt;p&gt;Below are various format modifier examples for the category conversion specifier.&lt;/p&gt;
<span class="lineNum" id="container115"><a name="115"></a><a href="#115" id="line115"> 115</a> </span> : * &lt;pre&gt;
<span class="lineNum" id="container116"><a name="116"></a><a href="#116" id="line116"> 116</a> </span> : * Format modifier left justify minimum width maximum width comment
<span class="lineNum" id="container117"><a name="117"></a><a href="#117" id="line117"> 117</a> </span> : * %20c false 20 none Left pad with spaces if the category name
<span class="lineNum" id="container118"><a name="118"></a><a href="#118" id="line118"> 118</a> </span> : * is less than 20 characters long.
<span class="lineNum" id="container119"><a name="119"></a><a href="#119" id="line119"> 119</a> </span> : * %-20c true 20 none Right pad with spaces if the category name
<span class="lineNum" id="container120"><a name="120"></a><a href="#120" id="line120"> 120</a> </span> : * is less than 20 characters long.
<span class="lineNum" id="container121"><a name="121"></a><a href="#121" id="line121"> 121</a> </span> : * %.30c NA none 30 Truncate from the beginning if the category name
<span class="lineNum" id="container122"><a name="122"></a><a href="#122" id="line122"> 122</a> </span> : * is longer than 30 characters.
<span class="lineNum" id="container123"><a name="123"></a><a href="#123" id="line123"> 123</a> </span> : * %20.30c false 20 30 Left pad with spaces if the category name
<span class="lineNum" id="container124"><a name="124"></a><a href="#124" id="line124"> 124</a> </span> : * is shorter than 20 characters.
<span class="lineNum" id="container125"><a name="125"></a><a href="#125" id="line125"> 125</a> </span> : * However, if category name is longer than 30 chars,
<span class="lineNum" id="container126"><a name="126"></a><a href="#126" id="line126"> 126</a> </span> : * then truncate from the beginning.
<span class="lineNum" id="container127"><a name="127"></a><a href="#127" id="line127"> 127</a> </span> : * %-20.30c true 20 30 Right pad with spaces if the category name is
<span class="lineNum" id="container128"><a name="128"></a><a href="#128" id="line128"> 128</a> </span> : * shorter than 20 chars.
<span class="lineNum" id="container129"><a name="129"></a><a href="#129" id="line129"> 129</a> </span> : * However, if category name is longer than 30 chars,
<span class="lineNum" id="container130"><a name="130"></a><a href="#130" id="line130"> 130</a> </span> : * then truncate from the beginning.
<span class="lineNum" id="container131"><a name="131"></a><a href="#131" id="line131"> 131</a> </span> : * &lt;/pre&gt;
<span class="lineNum" id="container132"><a name="132"></a><a href="#132" id="line132"> 132</a> </span> : *
<span class="lineNum" id="container133"><a name="133"></a><a href="#133" id="line133"> 133</a> </span> : * @version $Revision: 1213283 $
<span class="lineNum" id="container134"><a name="134"></a><a href="#134" id="line134"> 134</a> </span> : * @package log4php
<span class="lineNum" id="container135"><a name="135"></a><a href="#135" id="line135"> 135</a> </span> : * @subpackage layouts
<span class="lineNum" id="container136"><a name="136"></a><a href="#136" id="line136"> 136</a> </span> : * @since 0.3
<span class="lineNum" id="container137"><a name="137"></a><a href="#137" id="line137"> 137</a> </span> : */
<span class="lineNum" id="container138"><a name="138"></a><a href="#138" id="line138"> 138</a> </span> : class LoggerLayoutPattern extends LoggerLayout {
<span class="lineNum" id="container139"><a name="139"></a><a href="#139" id="line139"> 139</a> </span> : /** Default conversion Pattern */
<span class="lineNum" id="container140"><a name="140"></a><a href="#140" id="line140"> 140</a> </span> : const DEFAULT_CONVERSION_PATTERN = '%m%n';
<span class="lineNum" id="container141"><a name="141"></a><a href="#141" id="line141"> 141</a> </span> :
<span class="lineNum" id="container142"><a name="142"></a><a href="#142" id="line142"> 142</a> </span> : /** Default conversion TTCC Pattern */
<span class="lineNum" id="container143"><a name="143"></a><a href="#143" id="line143"> 143</a> </span> : const TTCC_CONVERSION_PATTERN = '%d [%t] %p %c %x - %m%n';
<span class="lineNum" id="container144"><a name="144"></a><a href="#144" id="line144"> 144</a> </span> :
<span class="lineNum" id="container145"><a name="145"></a><a href="#145" id="line145"> 145</a> </span> : /** The conversion pattern. */
<span class="lineNum" id="container146"><a name="146"></a><a href="#146" id="line146"> 146</a> </span> : protected $pattern = self::DEFAULT_CONVERSION_PATTERN;
<span class="lineNum" id="container147"><a name="147"></a><a href="#147" id="line147"> 147</a> </span> :
<span class="lineNum" id="container148"><a name="148"></a><a href="#148" id="line148"> 148</a> </span> : /**
<span class="lineNum" id="container149"><a name="149"></a><a href="#149" id="line149"> 149</a> </span> : * Head of a chain of Converters.
<span class="lineNum" id="container150"><a name="150"></a><a href="#150" id="line150"> 150</a> </span> : * @var LoggerPatternConverter
<span class="lineNum" id="container151"><a name="151"></a><a href="#151" id="line151"> 151</a> </span> : */
<span class="lineNum" id="container152"><a name="152"></a><a href="#152" id="line152"> 152</a> </span> : private $head;
<span class="lineNum" id="container153"><a name="153"></a><a href="#153" id="line153"> 153</a> </span> :
<span class="lineNum" id="container154"><a name="154"></a><a href="#154" id="line154"> 154</a> </span> : /**
<span class="lineNum" id="container155"><a name="155"></a><a href="#155" id="line155"> 155</a> </span> : * Set the &lt;b&gt;ConversionPattern&lt;/b&gt; option. This is the string which
<span class="lineNum" id="container156"><a name="156"></a><a href="#156" id="line156"> 156</a> </span> : * controls formatting and consists of a mix of literal content and
<span class="lineNum" id="container157"><a name="157"></a><a href="#157" id="line157"> 157</a> </span> : * conversion specifiers.
<span class="lineNum" id="container158"><a name="158"></a><a href="#158" id="line158"> 158</a> </span> : */
<span class="lineNum" id="container159"><a name="159"></a><a href="#159" id="line159"> 159</a> </span> : public function setConversionPattern($conversionPattern) {
<span class="lineNum" id="container160"><a name="160"></a><a href="#160" id="line160"> 160</a> </span><span class="lineCov"> 17 : $this-&gt;pattern = $conversionPattern; </span>
<span class="lineNum" id="container161"><a name="161"></a><a href="#161" id="line161"> 161</a> </span><span class="lineCov"> 17 : $patternParser = new LoggerPatternParser($this-&gt;pattern); </span>
<span class="lineNum" id="container162"><a name="162"></a><a href="#162" id="line162"> 162</a> </span><span class="lineCov"> 17 : $this-&gt;head = $patternParser-&gt;parse(); </span>
<span class="lineNum" id="container163"><a name="163"></a><a href="#163" id="line163"> 163</a> </span><span class="lineCov"> 17 : } </span>
<span class="lineNum" id="container164"><a name="164"></a><a href="#164" id="line164"> 164</a> </span> :
<span class="lineNum" id="container165"><a name="165"></a><a href="#165" id="line165"> 165</a> </span> : /**
<span class="lineNum" id="container166"><a name="166"></a><a href="#166" id="line166"> 166</a> </span> : * Produces a formatted string as specified by the conversion pattern.
<span class="lineNum" id="container167"><a name="167"></a><a href="#167" id="line167"> 167</a> </span> : *
<span class="lineNum" id="container168"><a name="168"></a><a href="#168" id="line168"> 168</a> </span> : * @param LoggerLoggingEvent $event
<span class="lineNum" id="container169"><a name="169"></a><a href="#169" id="line169"> 169</a> </span> : * @return string
<span class="lineNum" id="container170"><a name="170"></a><a href="#170" id="line170"> 170</a> </span> : */
<span class="lineNum" id="container171"><a name="171"></a><a href="#171" id="line171"> 171</a> </span> : public function format(LoggerLoggingEvent $event) {
<span class="lineNum" id="container172"><a name="172"></a><a href="#172" id="line172"> 172</a> </span><span class="lineCov"> 14 : $sbuf = ''; </span>
<span class="lineNum" id="container173"><a name="173"></a><a href="#173" id="line173"> 173</a> </span><span class="lineCov"> 14 : $c = $this-&gt;head; </span>
<span class="lineNum" id="container174"><a name="174"></a><a href="#174" id="line174"> 174</a> </span><span class="lineCov"> 14 : while ($c !== null) { </span>
<span class="lineNum" id="container175"><a name="175"></a><a href="#175" id="line175"> 175</a> </span><span class="lineCov"> 11 : $c-&gt;format($sbuf, $event); </span>
<span class="lineNum" id="container176"><a name="176"></a><a href="#176" id="line176"> 176</a> </span><span class="lineCov"> 11 : $c = $c-&gt;next; </span>
<span class="lineNum" id="container177"><a name="177"></a><a href="#177" id="line177"> 177</a> </span><span class="lineCov"> 11 : } </span>
<span class="lineNum" id="container178"><a name="178"></a><a href="#178" id="line178"> 178</a> </span><span class="lineCov"> 14 : return $sbuf; </span>
<span class="lineNum" id="container179"><a name="179"></a><a href="#179" id="line179"> 179</a> </span> : }
<span class="lineNum" id="container180"><a name="180"></a><a href="#180" id="line180"> 180</a> </span> :
<span class="lineNum" id="container181"><a name="181"></a><a href="#181" id="line181"> 181</a> </span> : /**
<span class="lineNum" id="container182"><a name="182"></a><a href="#182" id="line182"> 182</a> </span> : * Returns an array with the formatted elements.
<span class="lineNum" id="container183"><a name="183"></a><a href="#183" id="line183"> 183</a> </span> : *
<span class="lineNum" id="container184"><a name="184"></a><a href="#184" id="line184"> 184</a> </span> : * This method is mainly used for the prepared statements of {@see LoggerAppenderPDO}.
<span class="lineNum" id="container185"><a name="185"></a><a href="#185" id="line185"> 185</a> </span> : *
<span class="lineNum" id="container186"><a name="186"></a><a href="#186" id="line186"> 186</a> </span> : * It requires {@link $this-&gt;pattern} to be a comma separated string of patterns like
<span class="lineNum" id="container187"><a name="187"></a><a href="#187" id="line187"> 187</a> </span> : * e.g. &lt;code&gt;%d,%c,%p,%m,%t,%F,%L&lt;/code&gt;.
<span class="lineNum" id="container188"><a name="188"></a><a href="#188" id="line188"> 188</a> </span> : *
<span class="lineNum" id="container189"><a name="189"></a><a href="#189" id="line189"> 189</a> </span> : * @return array(string) An array of the converted elements i.e. timestamp, message, filename etc.
<span class="lineNum" id="container190"><a name="190"></a><a href="#190" id="line190"> 190</a> </span> : */
<span class="lineNum" id="container191"><a name="191"></a><a href="#191" id="line191"> 191</a> </span> : public function formatToArray(LoggerLoggingEvent $event) {
<span class="lineNum" id="container192"><a name="192"></a><a href="#192" id="line192"> 192</a> </span><span class="lineCov"> 3 : $results = array(); </span>
<span class="lineNum" id="container193"><a name="193"></a><a href="#193" id="line193"> 193</a> </span><span class="lineCov"> 3 : $c = $this-&gt;head; </span>
<span class="lineNum" id="container194"><a name="194"></a><a href="#194" id="line194"> 194</a> </span><span class="lineCov"> 3 : while ($c !== null) { </span>
<span class="lineNum" id="container195"><a name="195"></a><a href="#195" id="line195"> 195</a> </span><span class="lineCov"> 3 : if ( ! $c instanceOf LoggerLiteralPatternConverter) { </span>
<span class="lineNum" id="container196"><a name="196"></a><a href="#196" id="line196"> 196</a> </span><span class="lineCov"> 3 : $sbuf = null; </span>
<span class="lineNum" id="container197"><a name="197"></a><a href="#197" id="line197"> 197</a> </span><span class="lineCov"> 3 : $c-&gt;format($sbuf, $event); </span>
<span class="lineNum" id="container198"><a name="198"></a><a href="#198" id="line198"> 198</a> </span><span class="lineCov"> 3 : $results[] = $sbuf; </span>
<span class="lineNum" id="container199"><a name="199"></a><a href="#199" id="line199"> 199</a> </span><span class="lineCov"> 3 : } </span>
<span class="lineNum" id="container200"><a name="200"></a><a href="#200" id="line200"> 200</a> </span><span class="lineCov"> 3 : $c = $c-&gt;next; </span>
<span class="lineNum" id="container201"><a name="201"></a><a href="#201" id="line201"> 201</a> </span><span class="lineCov"> 3 : } </span>
<span class="lineNum" id="container202"><a name="202"></a><a href="#202" id="line202"> 202</a> </span><span class="lineCov"> 3 : return $results; </span>
<span class="lineNum" id="container203"><a name="203"></a><a href="#203" id="line203"> 203</a> </span> : }
<span class="lineNum" id="container204"><a name="204"></a><a href="#204" id="line204"> 204</a> </span> :
</pre>
</td>
</tr>
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr><td class="ruler"><img src="glass.png" width="3" height="3" alt=""></td></tr>
<tr><td class="versionInfo">Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 1.1.1</a> using <a href="http://www.php.net/" target="_top">PHP 5.3.3-7+squeeze3</a> and PHPUnit 3.6.3 at Sat Feb 18 22:32:39 GMT 2012.</td></tr>
</table>
<br />
<script type="text/javascript">
//<![CDATA[
$E = YAHOO.util.Event;
YAHOO.namespace("phpunit.container");
YAHOO.phpunit.container.panelsData = {
"panel160": {
"header": "17 tests cover line 160",
"body": "<ul><li class=\"testPassed\">LoggerConfiguratorTest::testAppendersWithLayout</li><li class=\"testPassed\">LoggerMDCTest::testPatterns</li><li class=\"testPassed\">LoggerMDCTest::testEnvKey</li><li class=\"testPassed\">LoggerMDCTest::testServerKey</li><li class=\"testPassed\">LoggerAppenderConsoleTest::testAppendDefault</li><li class=\"testPassed\">LoggerAppenderConsoleTest::testAppendStdout</li><li class=\"testPassed\">LoggerAppenderConsoleTest::testAppendStderr</li><li class=\"testPassed\">LoggerAppenderPDOTest::testSimpleWithDefaults</li><li class=\"testPassed\">LoggerAppenderPDOTest::testCustomizedSql</li><li class=\"testPassed\">LoggerAppenderPDOTest::testOldStyle</li><li class=\"testPassed\">LoggerAppenderPDOTest::testClose</li><li class=\"testPassed\">LoggerLayoutPatternTest::testErrorLayout</li><li class=\"testPassed\">LoggerLayoutPatternTest::testWarnLayout</li><li class=\"testPassed\">LoggerLayoutPatternTest::testInfoLayout</li><li class=\"testPassed\">LoggerLayoutPatternTest::testDebugLayout</li><li class=\"testPassed\">LoggerLayoutPatternTest::testTraceLayout</li><li class=\"testPassed\">LoggerLayoutPatternTest::testClassnamePattern</li></ul>",
"footer": ""
},
"panel161": {
"header": "17 tests cover line 161",
"body": "<ul><li class=\"testPassed\">LoggerConfiguratorTest::testAppendersWithLayout</li><li class=\"testPassed\">LoggerMDCTest::testPatterns</li><li class=\"testPassed\">LoggerMDCTest::testEnvKey</li><li class=\"testPassed\">LoggerMDCTest::testServerKey</li><li class=\"testPassed\">LoggerAppenderConsoleTest::testAppendDefault</li><li class=\"testPassed\">LoggerAppenderConsoleTest::testAppendStdout</li><li class=\"testPassed\">LoggerAppenderConsoleTest::testAppendStderr</li><li class=\"testPassed\">LoggerAppenderPDOTest::testSimpleWithDefaults</li><li class=\"testPassed\">LoggerAppenderPDOTest::testCustomizedSql</li><li class=\"testPassed\">LoggerAppenderPDOTest::testOldStyle</li><li class=\"testPassed\">LoggerAppenderPDOTest::testClose</li><li class=\"testPassed\">LoggerLayoutPatternTest::testErrorLayout</li><li class=\"testPassed\">LoggerLayoutPatternTest::testWarnLayout</li><li class=\"testPassed\">LoggerLayoutPatternTest::testInfoLayout</li><li class=\"testPassed\">LoggerLayoutPatternTest::testDebugLayout</li><li class=\"testPassed\">LoggerLayoutPatternTest::testTraceLayout</li><li class=\"testPassed\">LoggerLayoutPatternTest::testClassnamePattern</li></ul>",
"footer": ""
},
"panel162": {
"header": "17 tests cover line 162",
"body": "<ul><li class=\"testPassed\">LoggerConfiguratorTest::testAppendersWithLayout</li><li class=\"testPassed\">LoggerMDCTest::testPatterns</li><li class=\"testPassed\">LoggerMDCTest::testEnvKey</li><li class=\"testPassed\">LoggerMDCTest::testServerKey</li><li class=\"testPassed\">LoggerAppenderConsoleTest::testAppendDefault</li><li class=\"testPassed\">LoggerAppenderConsoleTest::testAppendStdout</li><li class=\"testPassed\">LoggerAppenderConsoleTest::testAppendStderr</li><li class=\"testPassed\">LoggerAppenderPDOTest::testSimpleWithDefaults</li><li class=\"testPassed\">LoggerAppenderPDOTest::testCustomizedSql</li><li class=\"testPassed\">LoggerAppenderPDOTest::testOldStyle</li><li class=\"testPassed\">LoggerAppenderPDOTest::testClose</li><li class=\"testPassed\">LoggerLayoutPatternTest::testErrorLayout</li><li class=\"testPassed\">LoggerLayoutPatternTest::testWarnLayout</li><li class=\"testPassed\">LoggerLayoutPatternTest::testInfoLayout</li><li class=\"testPassed\">LoggerLayoutPatternTest::testDebugLayout</li><li class=\"testPassed\">LoggerLayoutPatternTest::testTraceLayout</li><li class=\"testPassed\">LoggerLayoutPatternTest::testClassnamePattern</li></ul>",
"footer": ""
},
"panel163": {
"header": "17 tests cover line 163",
"body": "<ul><li class=\"testPassed\">LoggerConfiguratorTest::testAppendersWithLayout</li><li class=\"testPassed\">LoggerMDCTest::testPatterns</li><li class=\"testPassed\">LoggerMDCTest::testEnvKey</li><li class=\"testPassed\">LoggerMDCTest::testServerKey</li><li class=\"testPassed\">LoggerAppenderConsoleTest::testAppendDefault</li><li class=\"testPassed\">LoggerAppenderConsoleTest::testAppendStdout</li><li class=\"testPassed\">LoggerAppenderConsoleTest::testAppendStderr</li><li class=\"testPassed\">LoggerAppenderPDOTest::testSimpleWithDefaults</li><li class=\"testPassed\">LoggerAppenderPDOTest::testCustomizedSql</li><li class=\"testPassed\">LoggerAppenderPDOTest::testOldStyle</li><li class=\"testPassed\">LoggerAppenderPDOTest::testClose</li><li class=\"testPassed\">LoggerLayoutPatternTest::testErrorLayout</li><li class=\"testPassed\">LoggerLayoutPatternTest::testWarnLayout</li><li class=\"testPassed\">LoggerLayoutPatternTest::testInfoLayout</li><li class=\"testPassed\">LoggerLayoutPatternTest::testDebugLayout</li><li class=\"testPassed\">LoggerLayoutPatternTest::testTraceLayout</li><li class=\"testPassed\">LoggerLayoutPatternTest::testClassnamePattern</li></ul>",
"footer": ""
},
"panel172": {
"header": "14 tests cover line 172",
"body": "<ul><li class=\"testPassed\">LoggerConfiguratorTest::testAppendersWithLayout</li><li class=\"testPassed\">LoggerMDCTest::testPatterns</li><li class=\"testPassed\">LoggerMDCTest::testEnvKey</li><li class=\"testPassed\">LoggerMDCTest::testServerKey</li><li class=\"testPassed\">LoggerAppenderConsoleTest::testAppendDefault</li><li class=\"testPassed\">LoggerAppenderConsoleTest::testAppendStdout</li><li class=\"testPassed\">LoggerAppenderConsoleTest::testAppendStderr</li><li class=\"testPassed\">LoggerAppenderPDOTest::testOldStyle</li><li class=\"testPassed\">LoggerLayoutPatternTest::testErrorLayout</li><li class=\"testPassed\">LoggerLayoutPatternTest::testWarnLayout</li><li class=\"testPassed\">LoggerLayoutPatternTest::testInfoLayout</li><li class=\"testPassed\">LoggerLayoutPatternTest::testDebugLayout</li><li class=\"testPassed\">LoggerLayoutPatternTest::testTraceLayout</li><li class=\"testPassed\">LoggerLayoutPatternTest::testClassnamePattern</li></ul>",
"footer": ""
},
"panel173": {
"header": "14 tests cover line 173",
"body": "<ul><li class=\"testPassed\">LoggerConfiguratorTest::testAppendersWithLayout</li><li class=\"testPassed\">LoggerMDCTest::testPatterns</li><li class=\"testPassed\">LoggerMDCTest::testEnvKey</li><li class=\"testPassed\">LoggerMDCTest::testServerKey</li><li class=\"testPassed\">LoggerAppenderConsoleTest::testAppendDefault</li><li class=\"testPassed\">LoggerAppenderConsoleTest::testAppendStdout</li><li class=\"testPassed\">LoggerAppenderConsoleTest::testAppendStderr</li><li class=\"testPassed\">LoggerAppenderPDOTest::testOldStyle</li><li class=\"testPassed\">LoggerLayoutPatternTest::testErrorLayout</li><li class=\"testPassed\">LoggerLayoutPatternTest::testWarnLayout</li><li class=\"testPassed\">LoggerLayoutPatternTest::testInfoLayout</li><li class=\"testPassed\">LoggerLayoutPatternTest::testDebugLayout</li><li class=\"testPassed\">LoggerLayoutPatternTest::testTraceLayout</li><li class=\"testPassed\">LoggerLayoutPatternTest::testClassnamePattern</li></ul>",
"footer": ""
},
"panel174": {
"header": "14 tests cover line 174",
"body": "<ul><li class=\"testPassed\">LoggerConfiguratorTest::testAppendersWithLayout</li><li class=\"testPassed\">LoggerMDCTest::testPatterns</li><li class=\"testPassed\">LoggerMDCTest::testEnvKey</li><li class=\"testPassed\">LoggerMDCTest::testServerKey</li><li class=\"testPassed\">LoggerAppenderConsoleTest::testAppendDefault</li><li class=\"testPassed\">LoggerAppenderConsoleTest::testAppendStdout</li><li class=\"testPassed\">LoggerAppenderConsoleTest::testAppendStderr</li><li class=\"testPassed\">LoggerAppenderPDOTest::testOldStyle</li><li class=\"testPassed\">LoggerLayoutPatternTest::testErrorLayout</li><li class=\"testPassed\">LoggerLayoutPatternTest::testWarnLayout</li><li class=\"testPassed\">LoggerLayoutPatternTest::testInfoLayout</li><li class=\"testPassed\">LoggerLayoutPatternTest::testDebugLayout</li><li class=\"testPassed\">LoggerLayoutPatternTest::testTraceLayout</li><li class=\"testPassed\">LoggerLayoutPatternTest::testClassnamePattern</li></ul>",
"footer": ""
},
"panel175": {
"header": "11 tests cover line 175",
"body": "<ul><li class=\"testPassed\">LoggerConfiguratorTest::testAppendersWithLayout</li><li class=\"testPassed\">LoggerMDCTest::testPatterns</li><li class=\"testPassed\">LoggerMDCTest::testEnvKey</li><li class=\"testPassed\">LoggerMDCTest::testServerKey</li><li class=\"testPassed\">LoggerAppenderPDOTest::testOldStyle</li><li class=\"testPassed\">LoggerLayoutPatternTest::testErrorLayout</li><li class=\"testPassed\">LoggerLayoutPatternTest::testWarnLayout</li><li class=\"testPassed\">LoggerLayoutPatternTest::testInfoLayout</li><li class=\"testPassed\">LoggerLayoutPatternTest::testDebugLayout</li><li class=\"testPassed\">LoggerLayoutPatternTest::testTraceLayout</li><li class=\"testPassed\">LoggerLayoutPatternTest::testClassnamePattern</li></ul>",
"footer": ""
},
"panel176": {
"header": "11 tests cover line 176",
"body": "<ul><li class=\"testPassed\">LoggerConfiguratorTest::testAppendersWithLayout</li><li class=\"testPassed\">LoggerMDCTest::testPatterns</li><li class=\"testPassed\">LoggerMDCTest::testEnvKey</li><li class=\"testPassed\">LoggerMDCTest::testServerKey</li><li class=\"testPassed\">LoggerAppenderPDOTest::testOldStyle</li><li class=\"testPassed\">LoggerLayoutPatternTest::testErrorLayout</li><li class=\"testPassed\">LoggerLayoutPatternTest::testWarnLayout</li><li class=\"testPassed\">LoggerLayoutPatternTest::testInfoLayout</li><li class=\"testPassed\">LoggerLayoutPatternTest::testDebugLayout</li><li class=\"testPassed\">LoggerLayoutPatternTest::testTraceLayout</li><li class=\"testPassed\">LoggerLayoutPatternTest::testClassnamePattern</li></ul>",
"footer": ""
},
"panel177": {
"header": "11 tests cover line 177",
"body": "<ul><li class=\"testPassed\">LoggerConfiguratorTest::testAppendersWithLayout</li><li class=\"testPassed\">LoggerMDCTest::testPatterns</li><li class=\"testPassed\">LoggerMDCTest::testEnvKey</li><li class=\"testPassed\">LoggerMDCTest::testServerKey</li><li class=\"testPassed\">LoggerAppenderPDOTest::testOldStyle</li><li class=\"testPassed\">LoggerLayoutPatternTest::testErrorLayout</li><li class=\"testPassed\">LoggerLayoutPatternTest::testWarnLayout</li><li class=\"testPassed\">LoggerLayoutPatternTest::testInfoLayout</li><li class=\"testPassed\">LoggerLayoutPatternTest::testDebugLayout</li><li class=\"testPassed\">LoggerLayoutPatternTest::testTraceLayout</li><li class=\"testPassed\">LoggerLayoutPatternTest::testClassnamePattern</li></ul>",
"footer": ""
},
"panel178": {
"header": "14 tests cover line 178",
"body": "<ul><li class=\"testPassed\">LoggerConfiguratorTest::testAppendersWithLayout</li><li class=\"testPassed\">LoggerMDCTest::testPatterns</li><li class=\"testPassed\">LoggerMDCTest::testEnvKey</li><li class=\"testPassed\">LoggerMDCTest::testServerKey</li><li class=\"testPassed\">LoggerAppenderConsoleTest::testAppendDefault</li><li class=\"testPassed\">LoggerAppenderConsoleTest::testAppendStdout</li><li class=\"testPassed\">LoggerAppenderConsoleTest::testAppendStderr</li><li class=\"testPassed\">LoggerAppenderPDOTest::testOldStyle</li><li class=\"testPassed\">LoggerLayoutPatternTest::testErrorLayout</li><li class=\"testPassed\">LoggerLayoutPatternTest::testWarnLayout</li><li class=\"testPassed\">LoggerLayoutPatternTest::testInfoLayout</li><li class=\"testPassed\">LoggerLayoutPatternTest::testDebugLayout</li><li class=\"testPassed\">LoggerLayoutPatternTest::testTraceLayout</li><li class=\"testPassed\">LoggerLayoutPatternTest::testClassnamePattern</li></ul>",
"footer": ""
},
"panel192": {
"header": "3 tests cover line 192",
"body": "<ul><li class=\"testPassed\">LoggerAppenderPDOTest::testSimpleWithDefaults</li><li class=\"testPassed\">LoggerAppenderPDOTest::testCustomizedSql</li><li class=\"testPassed\">LoggerAppenderPDOTest::testClose</li></ul>",
"footer": ""
},
"panel193": {
"header": "3 tests cover line 193",
"body": "<ul><li class=\"testPassed\">LoggerAppenderPDOTest::testSimpleWithDefaults</li><li class=\"testPassed\">LoggerAppenderPDOTest::testCustomizedSql</li><li class=\"testPassed\">LoggerAppenderPDOTest::testClose</li></ul>",
"footer": ""
},
"panel194": {
"header": "3 tests cover line 194",
"body": "<ul><li class=\"testPassed\">LoggerAppenderPDOTest::testSimpleWithDefaults</li><li class=\"testPassed\">LoggerAppenderPDOTest::testCustomizedSql</li><li class=\"testPassed\">LoggerAppenderPDOTest::testClose</li></ul>",
"footer": ""
},
"panel195": {
"header": "3 tests cover line 195",
"body": "<ul><li class=\"testPassed\">LoggerAppenderPDOTest::testSimpleWithDefaults</li><li class=\"testPassed\">LoggerAppenderPDOTest::testCustomizedSql</li><li class=\"testPassed\">LoggerAppenderPDOTest::testClose</li></ul>",
"footer": ""
},
"panel196": {
"header": "3 tests cover line 196",
"body": "<ul><li class=\"testPassed\">LoggerAppenderPDOTest::testSimpleWithDefaults</li><li class=\"testPassed\">LoggerAppenderPDOTest::testCustomizedSql</li><li class=\"testPassed\">LoggerAppenderPDOTest::testClose</li></ul>",
"footer": ""
},
"panel197": {
"header": "3 tests cover line 197",
"body": "<ul><li class=\"testPassed\">LoggerAppenderPDOTest::testSimpleWithDefaults</li><li class=\"testPassed\">LoggerAppenderPDOTest::testCustomizedSql</li><li class=\"testPassed\">LoggerAppenderPDOTest::testClose</li></ul>",
"footer": ""
},
"panel198": {
"header": "3 tests cover line 198",
"body": "<ul><li class=\"testPassed\">LoggerAppenderPDOTest::testSimpleWithDefaults</li><li class=\"testPassed\">LoggerAppenderPDOTest::testCustomizedSql</li><li class=\"testPassed\">LoggerAppenderPDOTest::testClose</li></ul>",
"footer": ""
},
"panel199": {
"header": "3 tests cover line 199",
"body": "<ul><li class=\"testPassed\">LoggerAppenderPDOTest::testSimpleWithDefaults</li><li class=\"testPassed\">LoggerAppenderPDOTest::testCustomizedSql</li><li class=\"testPassed\">LoggerAppenderPDOTest::testClose</li></ul>",
"footer": ""
},
"panel200": {
"header": "3 tests cover line 200",
"body": "<ul><li class=\"testPassed\">LoggerAppenderPDOTest::testSimpleWithDefaults</li><li class=\"testPassed\">LoggerAppenderPDOTest::testCustomizedSql</li><li class=\"testPassed\">LoggerAppenderPDOTest::testClose</li></ul>",
"footer": ""
},
"panel201": {
"header": "3 tests cover line 201",
"body": "<ul><li class=\"testPassed\">LoggerAppenderPDOTest::testSimpleWithDefaults</li><li class=\"testPassed\">LoggerAppenderPDOTest::testCustomizedSql</li><li class=\"testPassed\">LoggerAppenderPDOTest::testClose</li></ul>",
"footer": ""
},
"panel202": {
"header": "3 tests cover line 202",
"body": "<ul><li class=\"testPassed\">LoggerAppenderPDOTest::testSimpleWithDefaults</li><li class=\"testPassed\">LoggerAppenderPDOTest::testCustomizedSql</li><li class=\"testPassed\">LoggerAppenderPDOTest::testClose</li></ul>",
"footer": ""
},
"dummy": ""
};
YAHOO.phpunit.container.prepare = function (e) {
var elemId = $E.getTarget(e).id;
var line = elemId.substr(4);
var panelId = "panel" + line;
var containerId = "container" + line;
var panelData = YAHOO.phpunit.container.panelsData[panelId];
var panel = new YAHOO.widget.Panel(panelId, { visible:false, draggable:false, close:true } );
panel.setHeader(panelData["header"]);
panel.setBody(panelData["body"]);
panel.setFooter(panelData["footer"]);
panel.render(containerId);
$E.addListener(elemId, "click", panel.show, panel, true);
$E.removeListener(elemId, "mouseover");
};
function init() {
var ypc = YAHOO.phpunit.container;
for (var panelId in ypc.panelsData) {
var elemId = "line" + panelId.substr(5);
$E.addListener(elemId, "mouseover", ypc.prepare);
}
}
$E.addListener(window, "load", init);
//]]>
</script>
</body>
</html>