blob: 14156dbc4413b9a2a35fd59eed8b4d0b60b9c355 [file] [log] [blame]
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Code Coverage for D:\work\log4php-trunk\src\main\php/LoggerAppenderPool.php</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="css/bootstrap.min.css" rel="stylesheet">
<link href="css/bootstrap-responsive.min.css" rel="stylesheet">
<link href="css/style.css" rel="stylesheet">
<!--[if lt IE 9]>
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
</head>
<body>
<header>
<div class="container">
<div class="row">
<div class="span12">
<ul class="breadcrumb">
<li><a href="index.html">D:\work\log4php-trunk\src\main\php</a> <span class="divider">/</span></li>
<li class="active">LoggerAppenderPool.php</li>
</ul>
</div>
</div>
</div>
</header>
<div class="container">
<table class="table table-bordered">
<thead>
<tr>
<td>&nbsp;</td>
<td colspan="10"><div align="center"><strong>Code Coverage</strong></div></td>
</tr>
<tr>
<td>&nbsp;</td>
<td colspan="3"><div align="center"><strong>Classes and Traits</strong></div></td>
<td colspan="4"><div align="center"><strong>Functions and Methods</strong></div></td>
<td colspan="3"><div align="center"><strong>Lines</strong></div></td>
</tr>
</thead>
<tbody>
<tr>
<td class="danger">Total</td>
<td class="danger big"> <div class="progress progress-danger" style="width: 100px;">
<div class="bar" style="width: 0.00%;"></div>
</div>
</td>
<td class="danger small"><div align="right">0.00%</div></td>
<td class="danger small"><div align="right">0 / 1</div></td>
<td class="danger big"> <div class="progress progress-danger" style="width: 100px;">
<div class="bar" style="width: 16.67%;"></div>
</div>
</td>
<td class="danger small"><div align="right">16.67%</div></td>
<td class="danger small"><div align="right">1 / 6</div></td>
<td class="danger small"><acronym title="Change Risk Anti-Patterns (CRAP) Index">CRAP</acronym></td>
<td class="warning big"> <div class="progress progress-warning" style="width: 100px;">
<div class="bar" style="width: 56.25%;"></div>
</div>
</td>
<td class="warning small"><div align="right">56.25%</div></td>
<td class="warning small"><div align="right">9 / 16</div></td>
</tr>
<tr>
<td class="danger">LoggerAppenderPool</td>
<td class="danger big"> <div class="progress progress-danger" style="width: 100px;">
<div class="bar" style="width: 0.00%;"></div>
</div>
</td>
<td class="danger small"><div align="right">0.00%</div></td>
<td class="danger small"><div align="right">0 / 1</div></td>
<td class="danger big"> <div class="progress progress-danger" style="width: 100px;">
<div class="bar" style="width: 16.67%;"></div>
</div>
</td>
<td class="danger small"><div align="right">16.67%</div></td>
<td class="danger small"><div align="right">1 / 6</div></td>
<td class="danger small">15.78</td>
<td class="warning big"> <div class="progress progress-warning" style="width: 100px;">
<div class="bar" style="width: 56.25%;"></div>
</div>
</td>
<td class="warning small"><div align="right">56.25%</div></td>
<td class="warning small"><div align="right">9 / 16</div></td>
</tr>
<tr>
<td class="danger" colspan="4">&nbsp;<a href="#42">add(LoggerAppender $appender)</a></td>
<td class="danger big"> <div class="progress progress-danger" style="width: 100px;">
<div class="bar" style="width: 0.00%;"></div>
</div>
</td>
<td class="danger small"><div align="right">0.00%</div></td>
<td class="danger small"><div align="right">0 / 1</div></td>
<td class="danger small">3.10</td>
<td class="success big"> <div class="progress progress-success" style="width: 100px;">
<div class="bar" style="width: 77.78%;"></div>
</div>
</td>
<td class="success small"><div align="right">77.78%</div></td>
<td class="success small"><div align="right">7 / 9</div></td>
</tr>
<tr>
<td class="danger" colspan="4">&nbsp;<a href="#63">get($name)</a></td>
<td class="danger big"> <div class="progress progress-danger" style="width: 100px;">
<div class="bar" style="width: 0.00%;"></div>
</div>
</td>
<td class="danger small"><div align="right">0.00%</div></td>
<td class="danger small"><div align="right">0 / 1</div></td>
<td class="danger small">6</td>
<td class="danger big"> <div class="progress progress-danger" style="width: 100px;">
<div class="bar" style="width: 0.00%;"></div>
</div>
</td>
<td class="danger small"><div align="right">0.00%</div></td>
<td class="danger small"><div align="right">0 / 1</div></td>
</tr>
<tr>
<td class="danger" colspan="4">&nbsp;<a href="#71">delete($name)</a></td>
<td class="danger big"> <div class="progress progress-danger" style="width: 100px;">
<div class="bar" style="width: 0.00%;"></div>
</div>
</td>
<td class="danger small"><div align="right">0.00%</div></td>
<td class="danger small"><div align="right">0 / 1</div></td>
<td class="danger small">2</td>
<td class="danger big"> <div class="progress progress-danger" style="width: 100px;">
<div class="bar" style="width: 0.00%;"></div>
</div>
</td>
<td class="danger small"><div align="right">0.00%</div></td>
<td class="danger small"><div align="right">0 / 2</div></td>
</tr>
<tr>
<td class="danger" colspan="4">&nbsp;<a href="#79">getAppenders()</a></td>
<td class="danger big"> <div class="progress progress-danger" style="width: 100px;">
<div class="bar" style="width: 0.00%;"></div>
</div>
</td>
<td class="danger small"><div align="right">0.00%</div></td>
<td class="danger small"><div align="right">0 / 1</div></td>
<td class="danger small">2</td>
<td class="danger big"> <div class="progress progress-danger" style="width: 100px;">
<div class="bar" style="width: 0.00%;"></div>
</div>
</td>
<td class="danger small"><div align="right">0.00%</div></td>
<td class="danger small"><div align="right">0 / 1</div></td>
</tr>
<tr>
<td class="danger" colspan="4">&nbsp;<a href="#88">exists($name)</a></td>
<td class="danger big"> <div class="progress progress-danger" style="width: 100px;">
<div class="bar" style="width: 0.00%;"></div>
</div>
</td>
<td class="danger small"><div align="right">0.00%</div></td>
<td class="danger small"><div align="right">0 / 1</div></td>
<td class="danger small">2</td>
<td class="danger big"> <div class="progress progress-danger" style="width: 100px;">
<div class="bar" style="width: 0.00%;"></div>
</div>
</td>
<td class="danger small"><div align="right">0.00%</div></td>
<td class="danger small"><div align="right">0 / 1</div></td>
</tr>
<tr>
<td class="success" colspan="4">&nbsp;<a href="#95">clear()</a></td>
<td class="success big"> <div class="progress progress-success" style="width: 100px;">
<div class="bar" style="width: 100.00%;"></div>
</div>
</td>
<td class="success small"><div align="right">100.00%</div></td>
<td class="success small"><div align="right">1 / 1</div></td>
<td class="success small">1</td>
<td class="success big"> <div class="progress progress-success" style="width: 100px;">
<div class="bar" style="width: 100.00%;"></div>
</div>
</td>
<td class="success small"><div align="right">100.00%</div></td>
<td class="success small"><div align="right">2 / 2</div></td>
</tr>
</tbody>
</table>
<table class="table table-borderless table-condensed">
<tbody>
<tr><td><div align="right"><a name="1"></a><a href="#1">1</a></div></td><td class="codeLine">&lt;?php</td></tr>
<tr><td><div align="right"><a name="2"></a><a href="#2">2</a></div></td><td class="codeLine">/**</td></tr>
<tr><td><div align="right"><a name="3"></a><a href="#3">3</a></div></td><td class="codeLine"> * Licensed to the Apache Software Foundation (ASF) under one or more</td></tr>
<tr><td><div align="right"><a name="4"></a><a href="#4">4</a></div></td><td class="codeLine"> * contributor license agreements. See the NOTICE file distributed with</td></tr>
<tr><td><div align="right"><a name="5"></a><a href="#5">5</a></div></td><td class="codeLine"> * this work for additional information regarding copyright ownership.</td></tr>
<tr><td><div align="right"><a name="6"></a><a href="#6">6</a></div></td><td class="codeLine"> * The ASF licenses this file to You under the Apache License, Version 2.0</td></tr>
<tr><td><div align="right"><a name="7"></a><a href="#7">7</a></div></td><td class="codeLine"> * (the &quot;License&quot;); you may not use this file except in compliance with</td></tr>
<tr><td><div align="right"><a name="8"></a><a href="#8">8</a></div></td><td class="codeLine"> * the License. You may obtain a copy of the License at</td></tr>
<tr><td><div align="right"><a name="9"></a><a href="#9">9</a></div></td><td class="codeLine"> *</td></tr>
<tr><td><div align="right"><a name="10"></a><a href="#10">10</a></div></td><td class="codeLine"> * http://www.apache.org/licenses/LICENSE-2.0</td></tr>
<tr><td><div align="right"><a name="11"></a><a href="#11">11</a></div></td><td class="codeLine"> *</td></tr>
<tr><td><div align="right"><a name="12"></a><a href="#12">12</a></div></td><td class="codeLine"> * Unless required by applicable law or agreed to in writing, software</td></tr>
<tr><td><div align="right"><a name="13"></a><a href="#13">13</a></div></td><td class="codeLine"> * distributed under the License is distributed on an &quot;AS IS&quot; BASIS,</td></tr>
<tr><td><div align="right"><a name="14"></a><a href="#14">14</a></div></td><td class="codeLine"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</td></tr>
<tr><td><div align="right"><a name="15"></a><a href="#15">15</a></div></td><td class="codeLine"> * See the License for the specific language governing permissions and</td></tr>
<tr><td><div align="right"><a name="16"></a><a href="#16">16</a></div></td><td class="codeLine"> * limitations under the License.</td></tr>
<tr><td><div align="right"><a name="17"></a><a href="#17">17</a></div></td><td class="codeLine"> *</td></tr>
<tr><td><div align="right"><a name="18"></a><a href="#18">18</a></div></td><td class="codeLine"> * @package log4php</td></tr>
<tr><td><div align="right"><a name="19"></a><a href="#19">19</a></div></td><td class="codeLine"> */</td></tr>
<tr><td><div align="right"><a name="20"></a><a href="#20">20</a></div></td><td class="codeLine"></td></tr>
<tr><td><div align="right"><a name="21"></a><a href="#21">21</a></div></td><td class="codeLine">/**</td></tr>
<tr><td><div align="right"><a name="22"></a><a href="#22">22</a></div></td><td class="codeLine"> * Pool implmentation for LoggerAppender instances.</td></tr>
<tr><td><div align="right"><a name="23"></a><a href="#23">23</a></div></td><td class="codeLine"> *</td></tr>
<tr><td><div align="right"><a name="24"></a><a href="#24">24</a></div></td><td class="codeLine"> * The pool is used when configuring log4php. First all appender instances</td></tr>
<tr><td><div align="right"><a name="25"></a><a href="#25">25</a></div></td><td class="codeLine"> * are created in the pool. Afterward, they are linked to loggers, each</td></tr>
<tr><td><div align="right"><a name="26"></a><a href="#26">26</a></div></td><td class="codeLine"> * appender can be linked to multiple loggers. This makes sure duplicate</td></tr>
<tr><td><div align="right"><a name="27"></a><a href="#27">27</a></div></td><td class="codeLine"> * appenders are not created.</td></tr>
<tr><td><div align="right"><a name="28"></a><a href="#28">28</a></div></td><td class="codeLine"> *</td></tr>
<tr><td><div align="right"><a name="29"></a><a href="#29">29</a></div></td><td class="codeLine"> * @version $Revision: 1350602 $</td></tr>
<tr><td><div align="right"><a name="30"></a><a href="#30">30</a></div></td><td class="codeLine"> * @package log4php</td></tr>
<tr><td><div align="right"><a name="31"></a><a href="#31">31</a></div></td><td class="codeLine"> */</td></tr>
<tr><td><div align="right"><a name="32"></a><a href="#32">32</a></div></td><td class="codeLine">class LoggerAppenderPool {</td></tr>
<tr><td><div align="right"><a name="33"></a><a href="#33">33</a></div></td><td class="codeLine"></td></tr>
<tr><td><div align="right"><a name="34"></a><a href="#34">34</a></div></td><td class="codeLine"> /** Holds appenders indexed by their name */</td></tr>
<tr><td><div align="right"><a name="35"></a><a href="#35">35</a></div></td><td class="codeLine"> public static $appenders = array();</td></tr>
<tr><td><div align="right"><a name="36"></a><a href="#36">36</a></div></td><td class="codeLine"></td></tr>
<tr><td><div align="right"><a name="37"></a><a href="#37">37</a></div></td><td class="codeLine"> /**</td></tr>
<tr><td><div align="right"><a name="38"></a><a href="#38">38</a></div></td><td class="codeLine"> * Adds an appender to the pool.</td></tr>
<tr><td><div align="right"><a name="39"></a><a href="#39">39</a></div></td><td class="codeLine"> * The appender must be named for this operation.</td></tr>
<tr><td><div align="right"><a name="40"></a><a href="#40">40</a></div></td><td class="codeLine"> * @param LoggerAppender $appender</td></tr>
<tr><td><div align="right"><a name="41"></a><a href="#41">41</a></div></td><td class="codeLine"> */</td></tr>
<tr><td><div align="right"><a name="42"></a><a href="#42">42</a></div></td><td class="codeLine"> public static function add(LoggerAppender $appender) {</td></tr>
<tr class="success popin" data-title="2 tests cover line 43" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;LoggerAppenderPoolTest::testAppenderHasNoName&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerAppenderPoolTest::testAppenderIsAdded&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="43"></a><a href="#43">43</a></div></td><td class="codeLine"> $name = $appender-&gt;getName();</td></tr>
<tr><td><div align="right"><a name="44"></a><a href="#44">44</a></div></td><td class="codeLine"></td></tr>
<tr class="success popin" data-title="2 tests cover line 45" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;LoggerAppenderPoolTest::testAppenderHasNoName&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerAppenderPoolTest::testAppenderIsAdded&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="45"></a><a href="#45">45</a></div></td><td class="codeLine"> if(empty($name)) {</td></tr>
<tr class="success popin" data-title="1 test covers line 46" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;LoggerAppenderPoolTest::testAppenderHasNoName&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="46"></a><a href="#46">46</a></div></td><td class="codeLine"> trigger_error('log4php: Cannot add unnamed appender to pool.', E_USER_WARNING);</td></tr>
<tr class="danger"><td><div align="right"><a name="47"></a><a href="#47">47</a></div></td><td class="codeLine"> return;</td></tr>
<tr><td><div align="right"><a name="48"></a><a href="#48">48</a></div></td><td class="codeLine"> }</td></tr>
<tr><td><div align="right"><a name="49"></a><a href="#49">49</a></div></td><td class="codeLine"></td></tr>
<tr class="success popin" data-title="1 test covers line 50" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;LoggerAppenderPoolTest::testAppenderIsAdded&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="50"></a><a href="#50">50</a></div></td><td class="codeLine"> if (isset(self::$appenders[$name])) {</td></tr>
<tr class="success popin" data-title="1 test covers line 51" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;LoggerAppenderPoolTest::testAppenderIsAdded&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="51"></a><a href="#51">51</a></div></td><td class="codeLine"> trigger_error(&quot;log4php: Appender [$name] already exists in pool. Overwriting existing appender.&quot;, E_USER_WARNING);</td></tr>
<tr class="danger"><td><div align="right"><a name="52"></a><a href="#52">52</a></div></td><td class="codeLine"> }</td></tr>
<tr><td><div align="right"><a name="53"></a><a href="#53">53</a></div></td><td class="codeLine"></td></tr>
<tr class="success popin" data-title="1 test covers line 54" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;LoggerAppenderPoolTest::testAppenderIsAdded&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="54"></a><a href="#54">54</a></div></td><td class="codeLine"> self::$appenders[$name] = $appender;</td></tr>
<tr class="success popin" data-title="1 test covers line 55" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;LoggerAppenderPoolTest::testAppenderIsAdded&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="55"></a><a href="#55">55</a></div></td><td class="codeLine"> }</td></tr>
<tr><td><div align="right"><a name="56"></a><a href="#56">56</a></div></td><td class="codeLine"></td></tr>
<tr><td><div align="right"><a name="57"></a><a href="#57">57</a></div></td><td class="codeLine"> /**</td></tr>
<tr><td><div align="right"><a name="58"></a><a href="#58">58</a></div></td><td class="codeLine"> * Retrieves an appender from the pool by name.</td></tr>
<tr><td><div align="right"><a name="59"></a><a href="#59">59</a></div></td><td class="codeLine"> * @param string $name Name of the appender to retrieve.</td></tr>
<tr><td><div align="right"><a name="60"></a><a href="#60">60</a></div></td><td class="codeLine"> * @return LoggerAppender The named appender or NULL if no such appender</td></tr>
<tr><td><div align="right"><a name="61"></a><a href="#61">61</a></div></td><td class="codeLine"> * exists in the pool.</td></tr>
<tr><td><div align="right"><a name="62"></a><a href="#62">62</a></div></td><td class="codeLine"> */</td></tr>
<tr><td><div align="right"><a name="63"></a><a href="#63">63</a></div></td><td class="codeLine"> public static function get($name) {</td></tr>
<tr class="danger"><td><div align="right"><a name="64"></a><a href="#64">64</a></div></td><td class="codeLine"> return isset(self::$appenders[$name]) ? self::$appenders[$name] : null;</td></tr>
<tr><td><div align="right"><a name="65"></a><a href="#65">65</a></div></td><td class="codeLine"> }</td></tr>
<tr><td><div align="right"><a name="66"></a><a href="#66">66</a></div></td><td class="codeLine"></td></tr>
<tr><td><div align="right"><a name="67"></a><a href="#67">67</a></div></td><td class="codeLine"> /**</td></tr>
<tr><td><div align="right"><a name="68"></a><a href="#68">68</a></div></td><td class="codeLine"> * Removes an appender from the pool by name.</td></tr>
<tr><td><div align="right"><a name="69"></a><a href="#69">69</a></div></td><td class="codeLine"> * @param string $name Name of the appender to remove.</td></tr>
<tr><td><div align="right"><a name="70"></a><a href="#70">70</a></div></td><td class="codeLine"> */</td></tr>
<tr><td><div align="right"><a name="71"></a><a href="#71">71</a></div></td><td class="codeLine"> public static function delete($name) {</td></tr>
<tr class="danger"><td><div align="right"><a name="72"></a><a href="#72">72</a></div></td><td class="codeLine"> unset(self::$appenders[$name]);</td></tr>
<tr class="danger"><td><div align="right"><a name="73"></a><a href="#73">73</a></div></td><td class="codeLine"> }</td></tr>
<tr><td><div align="right"><a name="74"></a><a href="#74">74</a></div></td><td class="codeLine"></td></tr>
<tr><td><div align="right"><a name="75"></a><a href="#75">75</a></div></td><td class="codeLine"> /**</td></tr>
<tr><td><div align="right"><a name="76"></a><a href="#76">76</a></div></td><td class="codeLine"> * Returns all appenders from the pool.</td></tr>
<tr><td><div align="right"><a name="77"></a><a href="#77">77</a></div></td><td class="codeLine"> * @return array Array of LoggerAppender objects.</td></tr>
<tr><td><div align="right"><a name="78"></a><a href="#78">78</a></div></td><td class="codeLine"> */</td></tr>
<tr><td><div align="right"><a name="79"></a><a href="#79">79</a></div></td><td class="codeLine"> public static function getAppenders() {</td></tr>
<tr class="danger"><td><div align="right"><a name="80"></a><a href="#80">80</a></div></td><td class="codeLine"> return self::$appenders;</td></tr>
<tr><td><div align="right"><a name="81"></a><a href="#81">81</a></div></td><td class="codeLine"> }</td></tr>
<tr><td><div align="right"><a name="82"></a><a href="#82">82</a></div></td><td class="codeLine"></td></tr>
<tr><td><div align="right"><a name="83"></a><a href="#83">83</a></div></td><td class="codeLine"> /**</td></tr>
<tr><td><div align="right"><a name="84"></a><a href="#84">84</a></div></td><td class="codeLine"> * Checks whether an appender exists in the pool.</td></tr>
<tr><td><div align="right"><a name="85"></a><a href="#85">85</a></div></td><td class="codeLine"> * @param string $name Name of the appender to look for.</td></tr>
<tr><td><div align="right"><a name="86"></a><a href="#86">86</a></div></td><td class="codeLine"> * @return boolean TRUE if the appender with the given name exists.</td></tr>
<tr><td><div align="right"><a name="87"></a><a href="#87">87</a></div></td><td class="codeLine"> */</td></tr>
<tr><td><div align="right"><a name="88"></a><a href="#88">88</a></div></td><td class="codeLine"> public static function exists($name) {</td></tr>
<tr class="danger"><td><div align="right"><a name="89"></a><a href="#89">89</a></div></td><td class="codeLine"> return isset(self::$appenders[$name]);</td></tr>
<tr><td><div align="right"><a name="90"></a><a href="#90">90</a></div></td><td class="codeLine"> }</td></tr>
<tr><td><div align="right"><a name="91"></a><a href="#91">91</a></div></td><td class="codeLine"></td></tr>
<tr><td><div align="right"><a name="92"></a><a href="#92">92</a></div></td><td class="codeLine"> /**</td></tr>
<tr><td><div align="right"><a name="93"></a><a href="#93">93</a></div></td><td class="codeLine"> * Clears all appenders from the pool.</td></tr>
<tr><td><div align="right"><a name="94"></a><a href="#94">94</a></div></td><td class="codeLine"> */</td></tr>
<tr><td><div align="right"><a name="95"></a><a href="#95">95</a></div></td><td class="codeLine"> public static function clear() {</td></tr>
<tr class="success popin" data-title="65 tests cover line 96" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testDefaultConfig&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testInputIsInteger&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testYAMLFile&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testAppenderConfigNotArray&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testNoAppenderClassSet&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testNotExistingAppenderClassSet&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testInvalidAppenderClassSet&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testNotExistingAppenderFilterClassSet&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testInvalidAppenderFilterParamter&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testInvalidAppenderFilterClassSet&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testNotExistingAppenderLayoutClassSet&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testInvalidAppenderLayoutClassSet&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testNoAppenderLayoutClassSet&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testInvalidRenderingClassSet&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testNoRenderingClassSet&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testNoRenderedClassSet&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testNotExistingRenderingClassSet&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testInvalidLoggerAddivity&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testNotExistingLoggerAppendersClass&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testNonexistantFile&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testNonexistantFileFallback&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testAppendersWithLayout&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testThreshold&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testInvalidThreshold&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testAppenderThreshold&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testAppenderInvalidThreshold&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testLoggerThreshold&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testInvalidLoggerThreshold&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testInvalidRootLoggerThreshold&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerHierarchyTest::testResetConfiguration&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerTest::testLoggerExist&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerTest::testCanGetRootLogger&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerTest::testCanGetASpecificLogger&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerTest::testCanLogToAllLevels&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerTest::testIsEnabledFor&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerTest::testGetCurrentLoggers&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerTest::testAdditivity&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerTest::testAdditivity2&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerAppenderConsoleTest::testAppendDefault&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerAppenderConsoleTest::testAppendStdout&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerAppenderConsoleTest::testAppendStderr&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerAppenderEchoTest::testAppend&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerAppenderEchoTest::testHtmlLineBreaks&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerAppenderFileTest::testRequiresLayout&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerAppenderFileTest::testActivationDoesNotCreateTheFile&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerAppenderFileTest::testSimpleLogging&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerAppenderFileTest::testAppendFlagTrue&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerAppenderFileTest::testAppendFlagFalse&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerAppenderPhpTest::testPhp&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerAppenderSocketTest::testLogging&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfigurationAdapterXMLTest::testConversion&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfigurationAdapterXMLTest::testConversion2&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfigurationAdapterXMLTest::testNonExistantFile&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfigurationAdapterXMLTest::testInvalidXMLFile&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfigurationAdapterXMLTest::testDuplicateLoggerWarning&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfigurationAdapterXMLTest::testDuplicateLoggerConfig&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerFilterDenyAllTest::testConfiguration&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerFilterLevelMatchTest::testAcceptConfig&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerFilterLevelMatchTest::testDenyConfig&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerLayoutPatternTest::testComplexLayout&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerLayoutSerializedTest::testLayout&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerLayoutSerializedTest::testLayoutWithLocationInfo&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerPatternConverterTest::testLocation&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerPatternConverterTest::testLocation2&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerRendererMapTest::testXMLConfig&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="96"></a><a href="#96">96</a></div></td><td class="codeLine"> self::$appenders = array();</td></tr>
<tr class="success popin" data-title="65 tests cover line 97" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testDefaultConfig&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testInputIsInteger&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testYAMLFile&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testAppenderConfigNotArray&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testNoAppenderClassSet&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testNotExistingAppenderClassSet&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testInvalidAppenderClassSet&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testNotExistingAppenderFilterClassSet&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testInvalidAppenderFilterParamter&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testInvalidAppenderFilterClassSet&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testNotExistingAppenderLayoutClassSet&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testInvalidAppenderLayoutClassSet&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testNoAppenderLayoutClassSet&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testInvalidRenderingClassSet&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testNoRenderingClassSet&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testNoRenderedClassSet&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testNotExistingRenderingClassSet&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testInvalidLoggerAddivity&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testNotExistingLoggerAppendersClass&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testNonexistantFile&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testNonexistantFileFallback&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testAppendersWithLayout&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testThreshold&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testInvalidThreshold&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testAppenderThreshold&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testAppenderInvalidThreshold&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testLoggerThreshold&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testInvalidLoggerThreshold&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testInvalidRootLoggerThreshold&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerHierarchyTest::testResetConfiguration&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerTest::testLoggerExist&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerTest::testCanGetRootLogger&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerTest::testCanGetASpecificLogger&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerTest::testCanLogToAllLevels&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerTest::testIsEnabledFor&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerTest::testGetCurrentLoggers&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerTest::testAdditivity&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerTest::testAdditivity2&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerAppenderConsoleTest::testAppendDefault&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerAppenderConsoleTest::testAppendStdout&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerAppenderConsoleTest::testAppendStderr&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerAppenderEchoTest::testAppend&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerAppenderEchoTest::testHtmlLineBreaks&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerAppenderFileTest::testRequiresLayout&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerAppenderFileTest::testActivationDoesNotCreateTheFile&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerAppenderFileTest::testSimpleLogging&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerAppenderFileTest::testAppendFlagTrue&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerAppenderFileTest::testAppendFlagFalse&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerAppenderPhpTest::testPhp&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerAppenderSocketTest::testLogging&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfigurationAdapterXMLTest::testConversion&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfigurationAdapterXMLTest::testConversion2&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfigurationAdapterXMLTest::testNonExistantFile&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfigurationAdapterXMLTest::testInvalidXMLFile&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfigurationAdapterXMLTest::testDuplicateLoggerWarning&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfigurationAdapterXMLTest::testDuplicateLoggerConfig&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerFilterDenyAllTest::testConfiguration&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerFilterLevelMatchTest::testAcceptConfig&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerFilterLevelMatchTest::testDenyConfig&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerLayoutPatternTest::testComplexLayout&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerLayoutSerializedTest::testLayout&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerLayoutSerializedTest::testLayoutWithLocationInfo&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerPatternConverterTest::testLocation&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerPatternConverterTest::testLocation2&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerRendererMapTest::testXMLConfig&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="97"></a><a href="#97">97</a></div></td><td class="codeLine"> }</td></tr>
</tbody>
</table>
<footer>
<h4>Legend</h4>
<p>
<span class="success"><strong>Executed</strong></span>
<span class="danger"><strong>Not Executed</strong></span>
<span class="warning"><strong>Dead Code</strong></span>
</p>
<p>
<small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 1.2.3</a> using <a href="http://www.php.net/" target="_top">PHP 5.3.13</a> and <a href="http://phpunit.de/">PHPUnit 3.7.6</a> at Sat Oct 13 8:58:14 BST 2012.</small>
</p>
</footer>
</div>
<script src="js/jquery.min.js" type="text/javascript"></script>
<script src="js/bootstrap.min.js" type="text/javascript"></script>
<script type="text/javascript">$('.popin').popover({trigger: 'hover'});</script>
</body>
</html>