blob: 889cc445611cefaa3505bf075261d6f750a2bfe2 [file] [log] [blame]
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Code Coverage for D:\work\log4php-trunk\src\main\php/configurators/LoggerConfiguratorDefault.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><a href="configurators.html">configurators</a> <span class="divider">/</span></li>
<li class="active">LoggerConfiguratorDefault.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="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>
<td class="warning small"><acronym title="Change Risk Anti-Patterns (CRAP) Index">CRAP</acronym></td>
<td class="success big"> <div class="progress progress-success" style="width: 100px;">
<div class="bar" style="width: 91.49%;"></div>
</div>
</td>
<td class="success small"><div align="right">91.49%</div></td>
<td class="success small"><div align="right">172 / 188</div></td>
</tr>
<tr>
<td class="danger">LoggerConfiguratorDefault</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="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>
<td class="warning small">71.93</td>
<td class="success big"> <div class="progress progress-success" style="width: 100px;">
<div class="bar" style="width: 91.49%;"></div>
</div>
</td>
<td class="success small"><div align="right">91.49%</div></td>
<td class="success small"><div align="right">172 / 188</div></td>
</tr>
<tr>
<td class="success" colspan="4">&nbsp;<a href="#82">configure(LoggerHierarchy $hierarchy, $input = null)</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">3 / 3</div></td>
</tr>
<tr>
<td class="danger" colspan="4">&nbsp;<a href="#100">parse($input)</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">5.01</td>
<td class="success big"> <div class="progress progress-success" style="width: 100px;">
<div class="bar" style="width: 93.33%;"></div>
</div>
</td>
<td class="success small"><div align="right">93.33%</div></td>
<td class="success small"><div align="right">14 / 15</div></td>
</tr>
<tr>
<td class="success" colspan="4">&nbsp;<a href="#134">getDefaultConfiguration()</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">1 / 1</div></td>
</tr>
<tr>
<td class="success" colspan="4">&nbsp;<a href="#148">parseFile($url)</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">2</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">6 / 6</div></td>
</tr>
<tr>
<td class="danger" colspan="4">&nbsp;<a href="#162">getConfigType($url)</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">5.12</td>
<td class="success big"> <div class="progress progress-success" style="width: 100px;">
<div class="bar" style="width: 83.33%;"></div>
</div>
</td>
<td class="success small"><div align="right">83.33%</div></td>
<td class="success small"><div align="right">10 / 12</div></td>
</tr>
<tr>
<td class="success" colspan="4">&nbsp;<a href="#188">doConfigure(LoggerHierarchy $hierarchy, $config)</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">14</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">29 / 29</div></td>
</tr>
<tr>
<td class="danger" colspan="4">&nbsp;<a href="#229">configureRenderer(LoggerHierarchy $hierarchy, $config)</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.14</td>
<td class="success big"> <div class="progress progress-success" style="width: 100px;">
<div class="bar" style="width: 75.00%;"></div>
</div>
</td>
<td class="success small"><div align="right">75.00%</div></td>
<td class="success small"><div align="right">6 / 8</div></td>
</tr>
<tr>
<td class="danger" colspan="4">&nbsp;<a href="#244">configureDefaultRenderer(LoggerHierarchy $hierarchy, $class)</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.26</td>
<td class="warning big"> <div class="progress progress-warning" style="width: 100px;">
<div class="bar" style="width: 60.00%;"></div>
</div>
</td>
<td class="warning small"><div align="right">60.00%</div></td>
<td class="warning small"><div align="right">3 / 5</div></td>
</tr>
<tr>
<td class="danger" colspan="4">&nbsp;<a href="#260">configureAppender($name, $config)</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">13.23</td>
<td class="success big"> <div class="progress progress-success" style="width: 100px;">
<div class="bar" style="width: 88.89%;"></div>
</div>
</td>
<td class="success small"><div align="right">88.89%</div></td>
<td class="success small"><div align="right">32 / 36</div></td>
</tr>
<tr>
<td class="danger" colspan="4">&nbsp;<a href="#324">createAppenderLayout(LoggerAppender $appender, $config)</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">5.12</td>
<td class="success big"> <div class="progress progress-success" style="width: 100px;">
<div class="bar" style="width: 83.33%;"></div>
</div>
</td>
<td class="success small"><div align="right">83.33%</div></td>
<td class="success small"><div align="right">15 / 18</div></td>
</tr>
<tr>
<td class="danger" colspan="4">&nbsp;<a href="#356">createAppenderFilter(LoggerAppender $appender, $config)</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">4.04</td>
<td class="success big"> <div class="progress progress-success" style="width: 100px;">
<div class="bar" style="width: 86.67%;"></div>
</div>
</td>
<td class="success small"><div align="right">86.67%</div></td>
<td class="success small"><div align="right">13 / 15</div></td>
</tr>
<tr>
<td class="success" colspan="4">&nbsp;<a href="#382">configureRootLogger(LoggerHierarchy $hierarchy, $config)</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">3 / 3</div></td>
</tr>
<tr>
<td class="success" colspan="4">&nbsp;<a href="#391">configureOtherLogger(LoggerHierarchy $hierarchy, $name, $config)</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">3 / 3</div></td>
</tr>
<tr>
<td class="success" colspan="4">&nbsp;<a href="#403">configureLogger(Logger $logger, $config)</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">8</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">23 / 23</div></td>
</tr>
<tr>
<td class="success" colspan="4">&nbsp;<a href="#461">setOptions($object, $options)</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">3</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">9 / 9</div></td>
</tr>
<tr>
<td class="success" colspan="4">&nbsp;<a href="#474">warn($message)</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"> * Default implementation of the logger configurator.</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"> * Configures log4php based on a provided configuration file or array.</td></tr>
<tr><td><div align="right"><a name="25"></a><a href="#25">25</a></div></td><td class="codeLine"> *</td></tr>
<tr><td><div align="right"><a name="26"></a><a href="#26">26</a></div></td><td class="codeLine"> * @package log4php</td></tr>
<tr><td><div align="right"><a name="27"></a><a href="#27">27</a></div></td><td class="codeLine"> * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License, Version 2.0</td></tr>
<tr><td><div align="right"><a name="28"></a><a href="#28">28</a></div></td><td class="codeLine"> * @version $Revision: 1394956 $</td></tr>
<tr><td><div align="right"><a name="29"></a><a href="#29">29</a></div></td><td class="codeLine"> * @since 2.2</td></tr>
<tr><td><div align="right"><a name="30"></a><a href="#30">30</a></div></td><td class="codeLine"> */</td></tr>
<tr><td><div align="right"><a name="31"></a><a href="#31">31</a></div></td><td class="codeLine">class LoggerConfiguratorDefault implements LoggerConfigurator</td></tr>
<tr><td><div align="right"><a name="32"></a><a href="#32">32</a></div></td><td class="codeLine">{</td></tr>
<tr><td><div align="right"><a name="33"></a><a href="#33">33</a></div></td><td class="codeLine"> /** XML configuration file format. */</td></tr>
<tr><td><div align="right"><a name="34"></a><a href="#34">34</a></div></td><td class="codeLine"> const FORMAT_XML = 'xml';</td></tr>
<tr><td><div align="right"><a name="35"></a><a href="#35">35</a></div></td><td class="codeLine"></td></tr>
<tr><td><div align="right"><a name="36"></a><a href="#36">36</a></div></td><td class="codeLine"> /** PHP configuration file format. */</td></tr>
<tr><td><div align="right"><a name="37"></a><a href="#37">37</a></div></td><td class="codeLine"> const FORMAT_PHP = 'php';</td></tr>
<tr><td><div align="right"><a name="38"></a><a href="#38">38</a></div></td><td class="codeLine"></td></tr>
<tr><td><div align="right"><a name="39"></a><a href="#39">39</a></div></td><td class="codeLine"> /** INI (properties) configuration file format. */</td></tr>
<tr><td><div align="right"><a name="40"></a><a href="#40">40</a></div></td><td class="codeLine"> const FORMAT_INI = 'ini';</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"> /** Defines which adapter should be used for parsing which format. */</td></tr>
<tr><td><div align="right"><a name="43"></a><a href="#43">43</a></div></td><td class="codeLine"> private $adapters = array(</td></tr>
<tr><td><div align="right"><a name="44"></a><a href="#44">44</a></div></td><td class="codeLine"> self::FORMAT_XML =&gt; 'LoggerConfigurationAdapterXML',</td></tr>
<tr><td><div align="right"><a name="45"></a><a href="#45">45</a></div></td><td class="codeLine"> self::FORMAT_INI =&gt; 'LoggerConfigurationAdapterINI',</td></tr>
<tr><td><div align="right"><a name="46"></a><a href="#46">46</a></div></td><td class="codeLine"> self::FORMAT_PHP =&gt; 'LoggerConfigurationAdapterPHP',</td></tr>
<tr><td><div align="right"><a name="47"></a><a href="#47">47</a></div></td><td class="codeLine"> );</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"> /** Default configuration; used if no configuration file is provided. */</td></tr>
<tr><td><div align="right"><a name="50"></a><a href="#50">50</a></div></td><td class="codeLine"> private static $defaultConfiguration = array(</td></tr>
<tr><td><div align="right"><a name="51"></a><a href="#51">51</a></div></td><td class="codeLine"> 'threshold' =&gt; 'ALL',</td></tr>
<tr><td><div align="right"><a name="52"></a><a href="#52">52</a></div></td><td class="codeLine"> 'rootLogger' =&gt; array(</td></tr>
<tr><td><div align="right"><a name="53"></a><a href="#53">53</a></div></td><td class="codeLine"> 'level' =&gt; 'DEBUG',</td></tr>
<tr><td><div align="right"><a name="54"></a><a href="#54">54</a></div></td><td class="codeLine"> 'appenders' =&gt; array('default'),</td></tr>
<tr><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"> 'appenders' =&gt; array(</td></tr>
<tr><td><div align="right"><a name="57"></a><a href="#57">57</a></div></td><td class="codeLine"> 'default' =&gt; array(</td></tr>
<tr><td><div align="right"><a name="58"></a><a href="#58">58</a></div></td><td class="codeLine"> 'class' =&gt; 'LoggerAppenderEcho'</td></tr>
<tr><td><div align="right"><a name="59"></a><a href="#59">59</a></div></td><td class="codeLine"> ),</td></tr>
<tr><td><div align="right"><a name="60"></a><a href="#60">60</a></div></td><td class="codeLine"> ),</td></tr>
<tr><td><div align="right"><a name="61"></a><a href="#61">61</a></div></td><td class="codeLine"> );</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"> /** Holds the appenders before they are linked to loggers. */</td></tr>
<tr><td><div align="right"><a name="64"></a><a href="#64">64</a></div></td><td class="codeLine"> private $appenders = array();</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"> * Configures log4php based on the given configuration. The input can</td></tr>
<tr><td><div align="right"><a name="68"></a><a href="#68">68</a></div></td><td class="codeLine"> * either be a path to the config file, or a PHP array holding the</td></tr>
<tr><td><div align="right"><a name="69"></a><a href="#69">69</a></div></td><td class="codeLine"> * configuration.</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"> * If no configuration is given, or if the given configuration cannot be</td></tr>
<tr><td><div align="right"><a name="72"></a><a href="#72">72</a></div></td><td class="codeLine"> * parsed for whatever reason, a warning will be issued, and log4php</td></tr>
<tr><td><div align="right"><a name="73"></a><a href="#73">73</a></div></td><td class="codeLine"> * will use the default configuration contained in</td></tr>
<tr><td><div align="right"><a name="74"></a><a href="#74">74</a></div></td><td class="codeLine"> * {@link $defaultConfiguration}.</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"> * @param LoggerHierarchy $hierarchy The hierarchy on which to perform</td></tr>
<tr><td><div align="right"><a name="77"></a><a href="#77">77</a></div></td><td class="codeLine"> * the configuration.</td></tr>
<tr><td><div align="right"><a name="78"></a><a href="#78">78</a></div></td><td class="codeLine"> * @param string|array $input Either path to the config file or the</td></tr>
<tr><td><div align="right"><a name="79"></a><a href="#79">79</a></div></td><td class="codeLine"> * configuration as an array. If not set, default configuration</td></tr>
<tr><td><div align="right"><a name="80"></a><a href="#80">80</a></div></td><td class="codeLine"> * will be used.</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"> public function configure(LoggerHierarchy $hierarchy, $input = null) {</td></tr>
<tr class="success popin" data-title="56 tests cover line 83" 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;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::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;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="83"></a><a href="#83">83</a></div></td><td class="codeLine"> $config = $this-&gt;parse($input);</td></tr>
<tr class="success popin" data-title="53 tests cover line 84" 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::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::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;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::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;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="84"></a><a href="#84">84</a></div></td><td class="codeLine"> $this-&gt;doConfigure($hierarchy, $config);</td></tr>
<tr class="success popin" data-title="33 tests cover line 85" 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::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::testAppenderThreshold&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testLoggerThreshold&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::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;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="85"></a><a href="#85">85</a></div></td><td class="codeLine"> }</td></tr>
<tr><td><div align="right"><a name="86"></a><a href="#86">86</a></div></td><td class="codeLine"></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"> * Parses the given configuration and returns the parsed configuration</td></tr>
<tr><td><div align="right"><a name="89"></a><a href="#89">89</a></div></td><td class="codeLine"> * as a PHP array. Does not perform any configuration.</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"> * If no configuration is given, or if the given configuration cannot be</td></tr>
<tr><td><div align="right"><a name="92"></a><a href="#92">92</a></div></td><td class="codeLine"> * parsed for whatever reason, a warning will be issued, and the default</td></tr>
<tr><td><div align="right"><a name="93"></a><a href="#93">93</a></div></td><td class="codeLine"> * configuration will be returned ({@link $defaultConfiguration}).</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"> * @param string|array $input Either path to the config file or the</td></tr>
<tr><td><div align="right"><a name="96"></a><a href="#96">96</a></div></td><td class="codeLine"> * configuration as an array. If not set, default configuration</td></tr>
<tr><td><div align="right"><a name="97"></a><a href="#97">97</a></div></td><td class="codeLine"> * will be used.</td></tr>
<tr><td><div align="right"><a name="98"></a><a href="#98">98</a></div></td><td class="codeLine"> * @return array The parsed configuration.</td></tr>
<tr><td><div align="right"><a name="99"></a><a href="#99">99</a></div></td><td class="codeLine"> */</td></tr>
<tr><td><div align="right"><a name="100"></a><a href="#100">100</a></div></td><td class="codeLine"> public function parse($input) {</td></tr>
<tr><td><div align="right"><a name="101"></a><a href="#101">101</a></div></td><td class="codeLine"> // No input - use default configuration</td></tr>
<tr class="success popin" data-title="56 tests cover line 102" 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;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::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;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="102"></a><a href="#102">102</a></div></td><td class="codeLine"> if (!isset($input)) {</td></tr>
<tr class="success popin" data-title="5 tests cover line 103" 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::testNonexistantFileFallback&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;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="103"></a><a href="#103">103</a></div></td><td class="codeLine"> $config = self::$defaultConfiguration;</td></tr>
<tr class="success popin" data-title="5 tests cover line 104" 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::testNonexistantFileFallback&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;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="104"></a><a href="#104">104</a></div></td><td class="codeLine"> }</td></tr>
<tr><td><div align="right"><a name="105"></a><a href="#105">105</a></div></td><td class="codeLine"></td></tr>
<tr><td><div align="right"><a name="106"></a><a href="#106">106</a></div></td><td class="codeLine"> // Array input - contains configuration within the array</td></tr>
<tr class="success popin" data-title="52 tests cover line 107" data-content="&lt;ul&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;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::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;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="107"></a><a href="#107">107</a></div></td><td class="codeLine"> else if (is_array($input)) {</td></tr>
<tr class="success popin" data-title="32 tests cover line 108" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testAppenderConfigNotArray&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;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::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;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;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="108"></a><a href="#108">108</a></div></td><td class="codeLine"> $config = $input;</td></tr>
<tr class="success popin" data-title="32 tests cover line 109" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testAppenderConfigNotArray&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;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::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;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;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="109"></a><a href="#109">109</a></div></td><td class="codeLine"> }</td></tr>
<tr><td><div align="right"><a name="110"></a><a href="#110">110</a></div></td><td class="codeLine"></td></tr>
<tr><td><div align="right"><a name="111"></a><a href="#111">111</a></div></td><td class="codeLine"> // String input - contains path to configuration file</td></tr>
<tr class="success popin" data-title="20 tests cover line 112" data-content="&lt;ul&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::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;LoggerRendererMapTest::testXMLConfig&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="112"></a><a href="#112">112</a></div></td><td class="codeLine"> else if (is_string($input)) {</td></tr>
<tr><td><div align="right"><a name="113"></a><a href="#113">113</a></div></td><td class="codeLine"> try {</td></tr>
<tr class="success popin" data-title="19 tests cover line 114" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testYAMLFile&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;LoggerRendererMapTest::testXMLConfig&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="114"></a><a href="#114">114</a></div></td><td class="codeLine"> $config = $this-&gt;parseFile($input);</td></tr>
<tr class="success popin" data-title="19 tests cover line 115" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testYAMLFile&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;LoggerRendererMapTest::testXMLConfig&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="115"></a><a href="#115">115</a></div></td><td class="codeLine"> } catch (LoggerException $e) {</td></tr>
<tr class="success popin" data-title="3 tests cover line 116" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testYAMLFile&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;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="116"></a><a href="#116">116</a></div></td><td class="codeLine"> $this-&gt;warn(&quot;Configuration failed. &quot; . $e-&gt;getMessage() . &quot; Using default configuration.&quot;);</td></tr>
<tr class="success popin" data-title="1 test covers line 117" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testNonexistantFileFallback&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="117"></a><a href="#117">117</a></div></td><td class="codeLine"> $config = self::$defaultConfiguration;</td></tr>
<tr><td><div align="right"><a name="118"></a><a href="#118">118</a></div></td><td class="codeLine"> }</td></tr>
<tr class="success popin" data-title="17 tests cover line 119" data-content="&lt;ul&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::testNonexistantFileFallback&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="119"></a><a href="#119">119</a></div></td><td class="codeLine"> }</td></tr>
<tr><td><div align="right"><a name="120"></a><a href="#120">120</a></div></td><td class="codeLine"></td></tr>
<tr><td><div align="right"><a name="121"></a><a href="#121">121</a></div></td><td class="codeLine"> // Anything else is an error</td></tr>
<tr><td><div align="right"><a name="122"></a><a href="#122">122</a></div></td><td class="codeLine"> else {</td></tr>
<tr class="success popin" data-title="1 test covers line 123" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testInputIsInteger&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="123"></a><a href="#123">123</a></div></td><td class="codeLine"> $this-&gt;warn(&quot;Invalid configuration param given. Reverting to default configuration.&quot;);</td></tr>
<tr class="danger"><td><div align="right"><a name="124"></a><a href="#124">124</a></div></td><td class="codeLine"> $config = self::$defaultConfiguration;</td></tr>
<tr><td><div align="right"><a name="125"></a><a href="#125">125</a></div></td><td class="codeLine"> }</td></tr>
<tr><td><div align="right"><a name="126"></a><a href="#126">126</a></div></td><td class="codeLine"></td></tr>
<tr class="success popin" data-title="53 tests cover line 127" 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::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::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;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::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;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="127"></a><a href="#127">127</a></div></td><td class="codeLine"> return $config;</td></tr>
<tr><td><div align="right"><a name="128"></a><a href="#128">128</a></div></td><td class="codeLine"> }</td></tr>
<tr><td><div align="right"><a name="129"></a><a href="#129">129</a></div></td><td class="codeLine"></td></tr>
<tr><td><div align="right"><a name="130"></a><a href="#130">130</a></div></td><td class="codeLine"> /**</td></tr>
<tr><td><div align="right"><a name="131"></a><a href="#131">131</a></div></td><td class="codeLine"> * Returns the default log4php configuration.</td></tr>
<tr><td><div align="right"><a name="132"></a><a href="#132">132</a></div></td><td class="codeLine"> * @return array</td></tr>
<tr><td><div align="right"><a name="133"></a><a href="#133">133</a></div></td><td class="codeLine"> */</td></tr>
<tr><td><div align="right"><a name="134"></a><a href="#134">134</a></div></td><td class="codeLine"> public static function getDefaultConfiguration() {</td></tr>
<tr class="success popin" data-title="1 test covers line 135" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;LoggerFilterDenyAllTest::testConfiguration&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="135"></a><a href="#135">135</a></div></td><td class="codeLine"> return self::$defaultConfiguration;</td></tr>
<tr><td><div align="right"><a name="136"></a><a href="#136">136</a></div></td><td class="codeLine"> }</td></tr>
<tr><td><div align="right"><a name="137"></a><a href="#137">137</a></div></td><td class="codeLine"></td></tr>
<tr><td><div align="right"><a name="138"></a><a href="#138">138</a></div></td><td class="codeLine"> /**</td></tr>
<tr><td><div align="right"><a name="139"></a><a href="#139">139</a></div></td><td class="codeLine"> * Loads the configuration file from the given URL, determines which</td></tr>
<tr><td><div align="right"><a name="140"></a><a href="#140">140</a></div></td><td class="codeLine"> * adapter to use, converts the configuration to a PHP array and</td></tr>
<tr><td><div align="right"><a name="141"></a><a href="#141">141</a></div></td><td class="codeLine"> * returns it.</td></tr>
<tr><td><div align="right"><a name="142"></a><a href="#142">142</a></div></td><td class="codeLine"> *</td></tr>
<tr><td><div align="right"><a name="143"></a><a href="#143">143</a></div></td><td class="codeLine"> * @param string $url Path to the config file.</td></tr>
<tr><td><div align="right"><a name="144"></a><a href="#144">144</a></div></td><td class="codeLine"> * @return The configuration from the config file, as a PHP array.</td></tr>
<tr><td><div align="right"><a name="145"></a><a href="#145">145</a></div></td><td class="codeLine"> * @throws LoggerException If the configuration file cannot be loaded, or</td></tr>
<tr><td><div align="right"><a name="146"></a><a href="#146">146</a></div></td><td class="codeLine"> * if the parsing fails.</td></tr>
<tr><td><div align="right"><a name="147"></a><a href="#147">147</a></div></td><td class="codeLine"> */</td></tr>
<tr><td><div align="right"><a name="148"></a><a href="#148">148</a></div></td><td class="codeLine"> private function parseFile($url) {</td></tr>
<tr><td><div align="right"><a name="149"></a><a href="#149">149</a></div></td><td class="codeLine"></td></tr>
<tr class="success popin" data-title="19 tests cover line 150" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testYAMLFile&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;LoggerRendererMapTest::testXMLConfig&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="150"></a><a href="#150">150</a></div></td><td class="codeLine"> if (!file_exists($url)) {</td></tr>
<tr class="success popin" data-title="2 tests cover line 151" data-content="&lt;ul&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;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="151"></a><a href="#151">151</a></div></td><td class="codeLine"> throw new LoggerException(&quot;File not found at [$url].&quot;);</td></tr>
<tr><td><div align="right"><a name="152"></a><a href="#152">152</a></div></td><td class="codeLine"> }</td></tr>
<tr><td><div align="right"><a name="153"></a><a href="#153">153</a></div></td><td class="codeLine"></td></tr>
<tr class="success popin" data-title="17 tests cover line 154" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testYAMLFile&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;LoggerRendererMapTest::testXMLConfig&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="154"></a><a href="#154">154</a></div></td><td class="codeLine"> $type = $this-&gt;getConfigType($url);</td></tr>
<tr class="success popin" data-title="16 tests cover line 155" data-content="&lt;ul&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;LoggerRendererMapTest::testXMLConfig&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="155"></a><a href="#155">155</a></div></td><td class="codeLine"> $adapterClass = $this-&gt;adapters[$type];</td></tr>
<tr><td><div align="right"><a name="156"></a><a href="#156">156</a></div></td><td class="codeLine"></td></tr>
<tr class="success popin" data-title="16 tests cover line 157" data-content="&lt;ul&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;LoggerRendererMapTest::testXMLConfig&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="157"></a><a href="#157">157</a></div></td><td class="codeLine"> $adapter = new $adapterClass();</td></tr>
<tr class="success popin" data-title="16 tests cover line 158" data-content="&lt;ul&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;LoggerRendererMapTest::testXMLConfig&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="158"></a><a href="#158">158</a></div></td><td class="codeLine"> return $adapter-&gt;convert($url);</td></tr>
<tr><td><div align="right"><a name="159"></a><a href="#159">159</a></div></td><td class="codeLine"> }</td></tr>
<tr><td><div align="right"><a name="160"></a><a href="#160">160</a></div></td><td class="codeLine"></td></tr>
<tr><td><div align="right"><a name="161"></a><a href="#161">161</a></div></td><td class="codeLine"> /** Determines configuration file type based on the file extension. */</td></tr>
<tr><td><div align="right"><a name="162"></a><a href="#162">162</a></div></td><td class="codeLine"> private function getConfigType($url) {</td></tr>
<tr class="success popin" data-title="17 tests cover line 163" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testYAMLFile&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;LoggerRendererMapTest::testXMLConfig&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="163"></a><a href="#163">163</a></div></td><td class="codeLine"> $info = pathinfo($url);</td></tr>
<tr class="success popin" data-title="17 tests cover line 164" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testYAMLFile&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;LoggerRendererMapTest::testXMLConfig&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="164"></a><a href="#164">164</a></div></td><td class="codeLine"> $ext = strtolower($info['extension']);</td></tr>
<tr><td><div align="right"><a name="165"></a><a href="#165">165</a></div></td><td class="codeLine"></td></tr>
<tr><td><div align="right"><a name="166"></a><a href="#166">166</a></div></td><td class="codeLine"> switch($ext) {</td></tr>
<tr class="success popin" data-title="17 tests cover line 167" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testYAMLFile&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;LoggerRendererMapTest::testXMLConfig&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="167"></a><a href="#167">167</a></div></td><td class="codeLine"> case 'xml':</td></tr>
<tr class="success popin" data-title="16 tests cover line 168" data-content="&lt;ul&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;LoggerRendererMapTest::testXMLConfig&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="168"></a><a href="#168">168</a></div></td><td class="codeLine"> return self::FORMAT_XML;</td></tr>
<tr><td><div align="right"><a name="169"></a><a href="#169">169</a></div></td><td class="codeLine"></td></tr>
<tr class="success popin" data-title="1 test covers line 170" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testYAMLFile&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="170"></a><a href="#170">170</a></div></td><td class="codeLine"> case 'ini':</td></tr>
<tr class="success popin" data-title="1 test covers line 171" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testYAMLFile&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="171"></a><a href="#171">171</a></div></td><td class="codeLine"> case 'properties':</td></tr>
<tr class="danger"><td><div align="right"><a name="172"></a><a href="#172">172</a></div></td><td class="codeLine"> return self::FORMAT_INI;</td></tr>
<tr><td><div align="right"><a name="173"></a><a href="#173">173</a></div></td><td class="codeLine"></td></tr>
<tr class="success popin" data-title="1 test covers line 174" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testYAMLFile&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="174"></a><a href="#174">174</a></div></td><td class="codeLine"> case 'php':</td></tr>
<tr class="danger"><td><div align="right"><a name="175"></a><a href="#175">175</a></div></td><td class="codeLine"> return self::FORMAT_PHP;</td></tr>
<tr><td><div align="right"><a name="176"></a><a href="#176">176</a></div></td><td class="codeLine"></td></tr>
<tr class="success popin" data-title="1 test covers line 177" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testYAMLFile&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="177"></a><a href="#177">177</a></div></td><td class="codeLine"> default:</td></tr>
<tr class="success popin" data-title="1 test covers line 178" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testYAMLFile&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="178"></a><a href="#178">178</a></div></td><td class="codeLine"> throw new LoggerException(&quot;Unsupported configuration file extension: $ext&quot;);</td></tr>
<tr class="success popin" data-title="1 test covers line 179" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testYAMLFile&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="179"></a><a href="#179">179</a></div></td><td class="codeLine"> }</td></tr>
<tr><td><div align="right"><a name="180"></a><a href="#180">180</a></div></td><td class="codeLine"> }</td></tr>
<tr><td><div align="right"><a name="181"></a><a href="#181">181</a></div></td><td class="codeLine"></td></tr>
<tr><td><div align="right"><a name="182"></a><a href="#182">182</a></div></td><td class="codeLine"> /**</td></tr>
<tr><td><div align="right"><a name="183"></a><a href="#183">183</a></div></td><td class="codeLine"> * Constructs the logger hierarchy based on configuration.</td></tr>
<tr><td><div align="right"><a name="184"></a><a href="#184">184</a></div></td><td class="codeLine"> *</td></tr>
<tr><td><div align="right"><a name="185"></a><a href="#185">185</a></div></td><td class="codeLine"> * @param LoggerHierarchy $hierarchy</td></tr>
<tr><td><div align="right"><a name="186"></a><a href="#186">186</a></div></td><td class="codeLine"> * @param array $config</td></tr>
<tr><td><div align="right"><a name="187"></a><a href="#187">187</a></div></td><td class="codeLine"> */</td></tr>
<tr><td><div align="right"><a name="188"></a><a href="#188">188</a></div></td><td class="codeLine"> private function doConfigure(LoggerHierarchy $hierarchy, $config) {</td></tr>
<tr class="success popin" data-title="53 tests cover line 189" 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::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::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;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::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;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="189"></a><a href="#189">189</a></div></td><td class="codeLine"> if (isset($config['threshold'])) {</td></tr>
<tr class="success popin" data-title="18 tests cover line 190" 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::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::testInvalidLoggerAddivity&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testNotExistingLoggerAppendersClass&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testNonexistantFileFallback&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;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;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;LoggerPatternConverterTest::testLocation&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerPatternConverterTest::testLocation2&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="190"></a><a href="#190">190</a></div></td><td class="codeLine"> $threshold = LoggerLevel::toLevel($config['threshold']);</td></tr>
<tr class="success popin" data-title="18 tests cover line 191" 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::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::testInvalidLoggerAddivity&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testNotExistingLoggerAppendersClass&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testNonexistantFileFallback&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;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;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;LoggerPatternConverterTest::testLocation&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerPatternConverterTest::testLocation2&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="191"></a><a href="#191">191</a></div></td><td class="codeLine"> if (isset($threshold)) {</td></tr>
<tr class="success popin" data-title="17 tests cover line 192" 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::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::testInvalidLoggerAddivity&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testNotExistingLoggerAppendersClass&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testNonexistantFileFallback&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testThreshold&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;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;LoggerPatternConverterTest::testLocation&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerPatternConverterTest::testLocation2&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="192"></a><a href="#192">192</a></div></td><td class="codeLine"> $hierarchy-&gt;setThreshold($threshold);</td></tr>
<tr class="success popin" data-title="17 tests cover line 193" 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::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::testInvalidLoggerAddivity&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testNotExistingLoggerAppendersClass&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testNonexistantFileFallback&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testThreshold&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;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;LoggerPatternConverterTest::testLocation&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerPatternConverterTest::testLocation2&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="193"></a><a href="#193">193</a></div></td><td class="codeLine"> } else {</td></tr>
<tr class="success popin" data-title="1 test covers line 194" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testInvalidThreshold&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="194"></a><a href="#194">194</a></div></td><td class="codeLine"> $this-&gt;warn(&quot;Invalid threshold value [{$config['threshold']}] specified. Ignoring threshold definition.&quot;);</td></tr>
<tr><td><div align="right"><a name="195"></a><a href="#195">195</a></div></td><td class="codeLine"> }</td></tr>
<tr class="success popin" data-title="17 tests cover line 196" 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::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::testInvalidLoggerAddivity&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testNotExistingLoggerAppendersClass&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testNonexistantFileFallback&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testThreshold&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;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;LoggerPatternConverterTest::testLocation&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerPatternConverterTest::testLocation2&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="196"></a><a href="#196">196</a></div></td><td class="codeLine"> }</td></tr>
<tr><td><div align="right"><a name="197"></a><a href="#197">197</a></div></td><td class="codeLine"></td></tr>
<tr><td><div align="right"><a name="198"></a><a href="#198">198</a></div></td><td class="codeLine"> // Configure appenders and add them to the appender pool</td></tr>
<tr class="success popin" data-title="52 tests cover line 199" 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::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::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::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;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::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;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="199"></a><a href="#199">199</a></div></td><td class="codeLine"> if (isset($config['appenders']) &amp;&amp; is_array($config['appenders'])) {</td></tr>
<tr class="success popin" data-title="52 tests cover line 200" 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::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::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::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;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::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;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="200"></a><a href="#200">200</a></div></td><td class="codeLine"> foreach($config['appenders'] as $name =&gt; $appenderConfig) {</td></tr>
<tr class="success popin" data-title="51 tests cover line 201" 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::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::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::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;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::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;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="201"></a><a href="#201">201</a></div></td><td class="codeLine"> $this-&gt;configureAppender($name, $appenderConfig);</td></tr>
<tr class="success popin" data-title="41 tests cover line 202" 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::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::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::testAppenderThreshold&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;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::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;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="202"></a><a href="#202">202</a></div></td><td class="codeLine"> }</td></tr>
<tr class="success popin" data-title="41 tests cover line 203" 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::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::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::testAppenderThreshold&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;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::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;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="203"></a><a href="#203">203</a></div></td><td class="codeLine"> }</td></tr>
<tr><td><div align="right"><a name="204"></a><a href="#204">204</a></div></td><td class="codeLine"></td></tr>
<tr><td><div align="right"><a name="205"></a><a href="#205">205</a></div></td><td class="codeLine"> // Configure root logger</td></tr>
<tr class="success popin" data-title="41 tests cover line 206" 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::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::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::testAppenderThreshold&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;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::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;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="206"></a><a href="#206">206</a></div></td><td class="codeLine"> if (isset($config['rootLogger'])) {</td></tr>
<tr class="success popin" data-title="39 tests cover line 207" 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::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::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::testAppenderThreshold&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testLoggerThreshold&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testInvalidRootLoggerThreshold&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::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;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="207"></a><a href="#207">207</a></div></td><td class="codeLine"> $this-&gt;configureRootLogger($hierarchy, $config['rootLogger']);</td></tr>
<tr class="success popin" data-title="38 tests cover line 208" 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::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::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::testAppenderThreshold&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testLoggerThreshold&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::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;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="208"></a><a href="#208">208</a></div></td><td class="codeLine"> }</td></tr>
<tr><td><div align="right"><a name="209"></a><a href="#209">209</a></div></td><td class="codeLine"></td></tr>
<tr><td><div align="right"><a name="210"></a><a href="#210">210</a></div></td><td class="codeLine"> // Configure loggers</td></tr>
<tr class="success popin" data-title="40 tests cover line 211" 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::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::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::testAppenderThreshold&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;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::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;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="211"></a><a href="#211">211</a></div></td><td class="codeLine"> if (isset($config['loggers']) &amp;&amp; is_array($config['loggers'])) {</td></tr>
<tr class="success popin" data-title="15 tests cover line 212" data-content="&lt;ul&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::testAppendersWithLayout&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;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;LoggerRendererMapTest::testXMLConfig&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="212"></a><a href="#212">212</a></div></td><td class="codeLine"> foreach($config['loggers'] as $loggerName =&gt; $loggerConfig) {</td></tr>
<tr class="success popin" data-title="10 tests cover line 213" data-content="&lt;ul&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::testAppendersWithLayout&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;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;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="213"></a><a href="#213">213</a></div></td><td class="codeLine"> $this-&gt;configureOtherLogger($hierarchy, $loggerName, $loggerConfig);</td></tr>
<tr class="success popin" data-title="12 tests cover line 214" data-content="&lt;ul&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::testAppendersWithLayout&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testLoggerThreshold&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;LoggerRendererMapTest::testXMLConfig&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="214"></a><a href="#214">214</a></div></td><td class="codeLine"> }</td></tr>
<tr class="success popin" data-title="12 tests cover line 215" data-content="&lt;ul&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::testAppendersWithLayout&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testLoggerThreshold&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;LoggerRendererMapTest::testXMLConfig&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="215"></a><a href="#215">215</a></div></td><td class="codeLine"> }</td></tr>
<tr><td><div align="right"><a name="216"></a><a href="#216">216</a></div></td><td class="codeLine"></td></tr>
<tr><td><div align="right"><a name="217"></a><a href="#217">217</a></div></td><td class="codeLine"> // Configure renderers</td></tr>
<tr class="success popin" data-title="37 tests cover line 218" 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::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::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::testAppenderThreshold&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testLoggerThreshold&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::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;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="218"></a><a href="#218">218</a></div></td><td class="codeLine"> if (isset($config['renderers']) &amp;&amp; is_array($config['renderers'])) {</td></tr>
<tr class="success popin" data-title="6 tests cover line 219" data-content="&lt;ul&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::testAppendersWithLayout&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="219"></a><a href="#219">219</a></div></td><td class="codeLine"> foreach($config['renderers'] as $rendererConfig) {</td></tr>
<tr class="success popin" data-title="5 tests cover line 220" data-content="&lt;ul&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::testAppendersWithLayout&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="220"></a><a href="#220">220</a></div></td><td class="codeLine"> $this-&gt;configureRenderer($hierarchy, $rendererConfig);</td></tr>
<tr class="success popin" data-title="2 tests cover line 221" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testAppendersWithLayout&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="221"></a><a href="#221">221</a></div></td><td class="codeLine"> }</td></tr>
<tr class="success popin" data-title="2 tests cover line 222" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testAppendersWithLayout&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="222"></a><a href="#222">222</a></div></td><td class="codeLine"> }</td></tr>
<tr><td><div align="right"><a name="223"></a><a href="#223">223</a></div></td><td class="codeLine"></td></tr>
<tr class="success popin" data-title="33 tests cover line 224" 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::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::testAppenderThreshold&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testLoggerThreshold&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::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;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="224"></a><a href="#224">224</a></div></td><td class="codeLine"> if (isset($config['defaultRenderer'])) {</td></tr>
<tr class="success popin" data-title="1 test covers line 225" data-content="&lt;ul&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="225"></a><a href="#225">225</a></div></td><td class="codeLine"> $this-&gt;configureDefaultRenderer($hierarchy, $config['defaultRenderer']);</td></tr>
<tr class="success popin" data-title="1 test covers line 226" data-content="&lt;ul&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="226"></a><a href="#226">226</a></div></td><td class="codeLine"> }</td></tr>
<tr class="success popin" data-title="33 tests cover line 227" 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::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::testAppenderThreshold&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testLoggerThreshold&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::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;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="227"></a><a href="#227">227</a></div></td><td class="codeLine"> }</td></tr>
<tr><td><div align="right"><a name="228"></a><a href="#228">228</a></div></td><td class="codeLine"></td></tr>
<tr><td><div align="right"><a name="229"></a><a href="#229">229</a></div></td><td class="codeLine"> private function configureRenderer(LoggerHierarchy $hierarchy, $config) {</td></tr>
<tr class="success popin" data-title="5 tests cover line 230" data-content="&lt;ul&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::testAppendersWithLayout&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="230"></a><a href="#230">230</a></div></td><td class="codeLine"> if (empty($config['renderingClass'])) {</td></tr>
<tr class="success popin" data-title="1 test covers line 231" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testNoRenderingClassSet&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="231"></a><a href="#231">231</a></div></td><td class="codeLine"> $this-&gt;warn(&quot;Rendering class not specified. Skipping renderer definition.&quot;);</td></tr>
<tr class="danger"><td><div align="right"><a name="232"></a><a href="#232">232</a></div></td><td class="codeLine"> return;</td></tr>
<tr><td><div align="right"><a name="233"></a><a href="#233">233</a></div></td><td class="codeLine"> }</td></tr>
<tr><td><div align="right"><a name="234"></a><a href="#234">234</a></div></td><td class="codeLine"></td></tr>
<tr class="success popin" data-title="4 tests cover line 235" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testInvalidRenderingClassSet&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::testAppendersWithLayout&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="235"></a><a href="#235">235</a></div></td><td class="codeLine"> if (empty($config['renderedClass'])) {</td></tr>
<tr class="success popin" data-title="1 test covers line 236" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testNoRenderedClassSet&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="236"></a><a href="#236">236</a></div></td><td class="codeLine"> $this-&gt;warn(&quot;Rendered class not specified. Skipping renderer definition.&quot;);</td></tr>
<tr class="danger"><td><div align="right"><a name="237"></a><a href="#237">237</a></div></td><td class="codeLine"> return;</td></tr>
<tr><td><div align="right"><a name="238"></a><a href="#238">238</a></div></td><td class="codeLine"> }</td></tr>
<tr><td><div align="right"><a name="239"></a><a href="#239">239</a></div></td><td class="codeLine"></td></tr>
<tr><td><div align="right"><a name="240"></a><a href="#240">240</a></div></td><td class="codeLine"> // Error handling performed by RendererMap</td></tr>
<tr class="success popin" data-title="3 tests cover line 241" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testInvalidRenderingClassSet&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testNotExistingRenderingClassSet&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testAppendersWithLayout&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="241"></a><a href="#241">241</a></div></td><td class="codeLine"> $hierarchy-&gt;getRendererMap()-&gt;addRenderer($config['renderedClass'], $config['renderingClass']);</td></tr>
<tr class="success popin" data-title="1 test covers line 242" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testAppendersWithLayout&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="242"></a><a href="#242">242</a></div></td><td class="codeLine"> }</td></tr>
<tr><td><div align="right"><a name="243"></a><a href="#243">243</a></div></td><td class="codeLine"></td></tr>
<tr><td><div align="right"><a name="244"></a><a href="#244">244</a></div></td><td class="codeLine"> private function configureDefaultRenderer(LoggerHierarchy $hierarchy, $class) {</td></tr>
<tr class="success popin" data-title="1 test covers line 245" data-content="&lt;ul&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="245"></a><a href="#245">245</a></div></td><td class="codeLine"> if (empty($class)) {</td></tr>
<tr class="danger"><td><div align="right"><a name="246"></a><a href="#246">246</a></div></td><td class="codeLine"> $this-&gt;warn(&quot;Rendering class not specified. Skipping default renderer definition.&quot;);</td></tr>
<tr class="danger"><td><div align="right"><a name="247"></a><a href="#247">247</a></div></td><td class="codeLine"> return;</td></tr>
<tr><td><div align="right"><a name="248"></a><a href="#248">248</a></div></td><td class="codeLine"> }</td></tr>
<tr><td><div align="right"><a name="249"></a><a href="#249">249</a></div></td><td class="codeLine"></td></tr>
<tr><td><div align="right"><a name="250"></a><a href="#250">250</a></div></td><td class="codeLine"> // Error handling performed by RendererMap</td></tr>
<tr class="success popin" data-title="1 test covers line 251" data-content="&lt;ul&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="251"></a><a href="#251">251</a></div></td><td class="codeLine"> $hierarchy-&gt;getRendererMap()-&gt;setDefaultRenderer($class);</td></tr>
<tr class="success popin" data-title="1 test covers line 252" data-content="&lt;ul&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="252"></a><a href="#252">252</a></div></td><td class="codeLine"> }</td></tr>
<tr><td><div align="right"><a name="253"></a><a href="#253">253</a></div></td><td class="codeLine"></td></tr>
<tr><td><div align="right"><a name="254"></a><a href="#254">254</a></div></td><td class="codeLine"> /**</td></tr>
<tr><td><div align="right"><a name="255"></a><a href="#255">255</a></div></td><td class="codeLine"> * Configures an appender based on given config and saves it to</td></tr>
<tr><td><div align="right"><a name="256"></a><a href="#256">256</a></div></td><td class="codeLine"> * {@link $appenders} array so it can be later linked to loggers.</td></tr>
<tr><td><div align="right"><a name="257"></a><a href="#257">257</a></div></td><td class="codeLine"> * @param string $name Appender name.</td></tr>
<tr><td><div align="right"><a name="258"></a><a href="#258">258</a></div></td><td class="codeLine"> * @param array $config Appender configuration options.</td></tr>
<tr><td><div align="right"><a name="259"></a><a href="#259">259</a></div></td><td class="codeLine"> */</td></tr>
<tr><td><div align="right"><a name="260"></a><a href="#260">260</a></div></td><td class="codeLine"> private function configureAppender($name, $config) {</td></tr>
<tr><td><div align="right"><a name="261"></a><a href="#261">261</a></div></td><td class="codeLine"></td></tr>
<tr><td><div align="right"><a name="262"></a><a href="#262">262</a></div></td><td class="codeLine"> // TODO: add this check to other places where it might be useful</td></tr>
<tr class="success popin" data-title="51 tests cover line 263" 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::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::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::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;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::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;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="263"></a><a href="#263">263</a></div></td><td class="codeLine"> if (!is_array($config)) {</td></tr>
<tr class="success popin" data-title="1 test covers line 264" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testAppenderConfigNotArray&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="264"></a><a href="#264">264</a></div></td><td class="codeLine"> $type = gettype($config);</td></tr>
<tr class="success popin" data-title="1 test covers line 265" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testAppenderConfigNotArray&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="265"></a><a href="#265">265</a></div></td><td class="codeLine"> $this-&gt;warn(&quot;Invalid configuration provided for appender [$name]. Expected an array, found &lt;$type&gt;. Skipping appender definition.&quot;);</td></tr>
<tr class="danger"><td><div align="right"><a name="266"></a><a href="#266">266</a></div></td><td class="codeLine"> return;</td></tr>
<tr><td><div align="right"><a name="267"></a><a href="#267">267</a></div></td><td class="codeLine"> }</td></tr>
<tr><td><div align="right"><a name="268"></a><a href="#268">268</a></div></td><td class="codeLine"></td></tr>
<tr><td><div align="right"><a name="269"></a><a href="#269">269</a></div></td><td class="codeLine"> // Parse appender class</td></tr>
<tr class="success popin" data-title="50 tests cover line 270" 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::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::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::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;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::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;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="270"></a><a href="#270">270</a></div></td><td class="codeLine"> $class = $config['class'];</td></tr>
<tr class="success popin" data-title="50 tests cover line 271" 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::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::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::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;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::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;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="271"></a><a href="#271">271</a></div></td><td class="codeLine"> if (empty($class)) {</td></tr>
<tr class="success popin" data-title="1 test covers line 272" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testNoAppenderClassSet&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="272"></a><a href="#272">272</a></div></td><td class="codeLine"> $this-&gt;warn(&quot;No class given for appender [$name]. Skipping appender definition.&quot;);</td></tr>
<tr class="danger"><td><div align="right"><a name="273"></a><a href="#273">273</a></div></td><td class="codeLine"> return;</td></tr>
<tr><td><div align="right"><a name="274"></a><a href="#274">274</a></div></td><td class="codeLine"> }</td></tr>
<tr class="success popin" data-title="49 tests cover line 275" 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::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::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::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;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::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;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="275"></a><a href="#275">275</a></div></td><td class="codeLine"> if (!class_exists($class)) {</td></tr>
<tr class="success popin" data-title="1 test covers line 276" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testNotExistingAppenderClassSet&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="276"></a><a href="#276">276</a></div></td><td class="codeLine"> $this-&gt;warn(&quot;Invalid class [$class] given for appender [$name]. Class does not exist. Skipping appender definition.&quot;);</td></tr>
<tr class="danger"><td><div align="right"><a name="277"></a><a href="#277">277</a></div></td><td class="codeLine"> return;</td></tr>
<tr><td><div align="right"><a name="278"></a><a href="#278">278</a></div></td><td class="codeLine"> }</td></tr>
<tr><td><div align="right"><a name="279"></a><a href="#279">279</a></div></td><td class="codeLine"></td></tr>
<tr><td><div align="right"><a name="280"></a><a href="#280">280</a></div></td><td class="codeLine"> // Instantiate the appender</td></tr>
<tr class="success popin" data-title="48 tests cover line 281" 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::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::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::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;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::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;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="281"></a><a href="#281">281</a></div></td><td class="codeLine"> $appender = new $class($name);</td></tr>
<tr class="success popin" data-title="48 tests cover line 282" 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::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::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::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;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::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;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="282"></a><a href="#282">282</a></div></td><td class="codeLine"> if (!($appender instanceof LoggerAppender)) {</td></tr>
<tr class="success popin" data-title="1 test covers line 283" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testInvalidAppenderClassSet&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="283"></a><a href="#283">283</a></div></td><td class="codeLine"> $this-&gt;warn(&quot;Invalid class [$class] given for appender [$name]. Not a valid LoggerAppender class. Skipping appender definition.&quot;);</td></tr>
<tr class="danger"><td><div align="right"><a name="284"></a><a href="#284">284</a></div></td><td class="codeLine"> return;</td></tr>
<tr><td><div align="right"><a name="285"></a><a href="#285">285</a></div></td><td class="codeLine"> }</td></tr>
<tr><td><div align="right"><a name="286"></a><a href="#286">286</a></div></td><td class="codeLine"></td></tr>
<tr><td><div align="right"><a name="287"></a><a href="#287">287</a></div></td><td class="codeLine"> // Parse the appender threshold</td></tr>
<tr class="success popin" data-title="47 tests cover line 288" 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::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::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::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;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::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;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="288"></a><a href="#288">288</a></div></td><td class="codeLine"> if (isset($config['threshold'])) {</td></tr>
<tr class="success popin" data-title="2 tests cover line 289" data-content="&lt;ul&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;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="289"></a><a href="#289">289</a></div></td><td class="codeLine"> $threshold = LoggerLevel::toLevel($config['threshold']);</td></tr>
<tr class="success popin" data-title="2 tests cover line 290" data-content="&lt;ul&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;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="290"></a><a href="#290">290</a></div></td><td class="codeLine"> if ($threshold instanceof LoggerLevel) {</td></tr>
<tr class="success popin" data-title="1 test covers line 291" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testAppenderThreshold&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="291"></a><a href="#291">291</a></div></td><td class="codeLine"> $appender-&gt;setThreshold($threshold);</td></tr>
<tr class="success popin" data-title="1 test covers line 292" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testAppenderThreshold&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="292"></a><a href="#292">292</a></div></td><td class="codeLine"> } else {</td></tr>
<tr class="success popin" data-title="1 test covers line 293" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testAppenderInvalidThreshold&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="293"></a><a href="#293">293</a></div></td><td class="codeLine"> $this-&gt;warn(&quot;Invalid threshold value [{$config['threshold']}] specified for appender [$name]. Ignoring threshold definition.&quot;);</td></tr>
<tr><td><div align="right"><a name="294"></a><a href="#294">294</a></div></td><td class="codeLine"> }</td></tr>
<tr class="success popin" data-title="1 test covers line 295" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testAppenderThreshold&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="295"></a><a href="#295">295</a></div></td><td class="codeLine"> }</td></tr>
<tr><td><div align="right"><a name="296"></a><a href="#296">296</a></div></td><td class="codeLine"></td></tr>
<tr><td><div align="right"><a name="297"></a><a href="#297">297</a></div></td><td class="codeLine"> // Parse the appender layout</td></tr>
<tr class="success popin" data-title="46 tests cover line 298" 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::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::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::testAppenderThreshold&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;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::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;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="298"></a><a href="#298">298</a></div></td><td class="codeLine"> if ($appender-&gt;requiresLayout() &amp;&amp; isset($config['layout'])) {</td></tr>
<tr class="success popin" data-title="26 tests cover line 299" data-content="&lt;ul&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::testAppendersWithLayout&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::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;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;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="299"></a><a href="#299">299</a></div></td><td class="codeLine"> $this-&gt;createAppenderLayout($appender, $config['layout']);</td></tr>
<tr class="success popin" data-title="23 tests cover line 300" data-content="&lt;ul&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::testAppendersWithLayout&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::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;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;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="300"></a><a href="#300">300</a></div></td><td class="codeLine"> }</td></tr>
<tr><td><div align="right"><a name="301"></a><a href="#301">301</a></div></td><td class="codeLine"></td></tr>
<tr><td><div align="right"><a name="302"></a><a href="#302">302</a></div></td><td class="codeLine"> // Parse filters</td></tr>
<tr class="success popin" data-title="43 tests cover line 303" 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::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::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::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::testAppenderThreshold&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;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::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;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="303"></a><a href="#303">303</a></div></td><td class="codeLine"> if (isset($config['filters']) &amp;&amp; is_array($config['filters'])) {</td></tr>
<tr class="success popin" data-title="7 tests cover line 304" data-content="&lt;ul&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::testAppendersWithLayout&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;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="304"></a><a href="#304">304</a></div></td><td class="codeLine"> foreach($config['filters'] as $filterConfig) {</td></tr>
<tr class="success popin" data-title="7 tests cover line 305" data-content="&lt;ul&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::testAppendersWithLayout&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;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="305"></a><a href="#305">305</a></div></td><td class="codeLine"> $this-&gt;createAppenderFilter($appender, $filterConfig);</td></tr>
<tr class="success popin" data-title="4 tests cover line 306" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testAppendersWithLayout&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;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="306"></a><a href="#306">306</a></div></td><td class="codeLine"> }</td></tr>
<tr class="success popin" data-title="4 tests cover line 307" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testAppendersWithLayout&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;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="307"></a><a href="#307">307</a></div></td><td class="codeLine"> }</td></tr>
<tr><td><div align="right"><a name="308"></a><a href="#308">308</a></div></td><td class="codeLine"></td></tr>
<tr><td><div align="right"><a name="309"></a><a href="#309">309</a></div></td><td class="codeLine"> // Set options if any</td></tr>
<tr class="success popin" data-title="40 tests cover line 310" 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::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::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::testAppenderThreshold&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;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::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;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="310"></a><a href="#310">310</a></div></td><td class="codeLine"> if (isset($config['params'])) {</td></tr>
<tr class="success popin" data-title="8 tests cover line 311" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testAppendersWithLayout&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::testHtmlLineBreaks&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;LoggerAppenderSocketTest::testLogging&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="311"></a><a href="#311">311</a></div></td><td class="codeLine"> $this-&gt;setOptions($appender, $config['params']);</td></tr>
<tr class="success popin" data-title="8 tests cover line 312" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testAppendersWithLayout&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::testHtmlLineBreaks&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;LoggerAppenderSocketTest::testLogging&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="312"></a><a href="#312">312</a></div></td><td class="codeLine"> }</td></tr>
<tr><td><div align="right"><a name="313"></a><a href="#313">313</a></div></td><td class="codeLine"></td></tr>
<tr><td><div align="right"><a name="314"></a><a href="#314">314</a></div></td><td class="codeLine"> // Activate and save for later linking to loggers</td></tr>
<tr class="success popin" data-title="40 tests cover line 315" 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::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::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::testAppenderThreshold&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;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::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;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="315"></a><a href="#315">315</a></div></td><td class="codeLine"> $appender-&gt;activateOptions();</td></tr>
<tr class="success popin" data-title="40 tests cover line 316" 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::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::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::testAppenderThreshold&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;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::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;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="316"></a><a href="#316">316</a></div></td><td class="codeLine"> $this-&gt;appenders[$name] = $appender;</td></tr>
<tr class="success popin" data-title="40 tests cover line 317" 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::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::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::testAppenderThreshold&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;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::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;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="317"></a><a href="#317">317</a></div></td><td class="codeLine"> }</td></tr>
<tr><td><div align="right"><a name="318"></a><a href="#318">318</a></div></td><td class="codeLine"></td></tr>
<tr><td><div align="right"><a name="319"></a><a href="#319">319</a></div></td><td class="codeLine"> /**</td></tr>
<tr><td><div align="right"><a name="320"></a><a href="#320">320</a></div></td><td class="codeLine"> * Parses layout config, creates the layout and links it to the appender.</td></tr>
<tr><td><div align="right"><a name="321"></a><a href="#321">321</a></div></td><td class="codeLine"> * @param LoggerAppender $appender</td></tr>
<tr><td><div align="right"><a name="322"></a><a href="#322">322</a></div></td><td class="codeLine"> * @param array $config Layout configuration.</td></tr>
<tr><td><div align="right"><a name="323"></a><a href="#323">323</a></div></td><td class="codeLine"> */</td></tr>
<tr><td><div align="right"><a name="324"></a><a href="#324">324</a></div></td><td class="codeLine"> private function createAppenderLayout(LoggerAppender $appender, $config) {</td></tr>
<tr class="success popin" data-title="26 tests cover line 325" data-content="&lt;ul&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::testAppendersWithLayout&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::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;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;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="325"></a><a href="#325">325</a></div></td><td class="codeLine"> $name = $appender-&gt;getName();</td></tr>
<tr class="success popin" data-title="26 tests cover line 326" data-content="&lt;ul&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::testAppendersWithLayout&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::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;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;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="326"></a><a href="#326">326</a></div></td><td class="codeLine"> $class = $config['class'];</td></tr>
<tr class="success popin" data-title="26 tests cover line 327" data-content="&lt;ul&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::testAppendersWithLayout&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::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;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;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="327"></a><a href="#327">327</a></div></td><td class="codeLine"> if (empty($class)) {</td></tr>
<tr class="success popin" data-title="1 test covers line 328" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testNoAppenderLayoutClassSet&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="328"></a><a href="#328">328</a></div></td><td class="codeLine"> $this-&gt;warn(&quot;Layout class not specified for appender [$name]. Reverting to default layout.&quot;);</td></tr>
<tr class="danger"><td><div align="right"><a name="329"></a><a href="#329">329</a></div></td><td class="codeLine"> return;</td></tr>
<tr><td><div align="right"><a name="330"></a><a href="#330">330</a></div></td><td class="codeLine"> }</td></tr>
<tr class="success popin" data-title="25 tests cover line 331" data-content="&lt;ul&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::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::testAppendersWithLayout&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::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;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;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="331"></a><a href="#331">331</a></div></td><td class="codeLine"> if (!class_exists($class)) {</td></tr>
<tr class="success popin" data-title="1 test covers line 332" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testNotExistingAppenderLayoutClassSet&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="332"></a><a href="#332">332</a></div></td><td class="codeLine"> $this-&gt;warn(&quot;Nonexistant layout class [$class] specified for appender [$name]. Reverting to default layout.&quot;);</td></tr>
<tr class="danger"><td><div align="right"><a name="333"></a><a href="#333">333</a></div></td><td class="codeLine"> return;</td></tr>
<tr><td><div align="right"><a name="334"></a><a href="#334">334</a></div></td><td class="codeLine"> }</td></tr>
<tr><td><div align="right"><a name="335"></a><a href="#335">335</a></div></td><td class="codeLine"></td></tr>
<tr class="success popin" data-title="24 tests cover line 336" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testInvalidAppenderLayoutClassSet&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::testAppendersWithLayout&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::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;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;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="336"></a><a href="#336">336</a></div></td><td class="codeLine"> $layout = new $class();</td></tr>
<tr class="success popin" data-title="24 tests cover line 337" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testInvalidAppenderLayoutClassSet&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::testAppendersWithLayout&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::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;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;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="337"></a><a href="#337">337</a></div></td><td class="codeLine"> if (!($layout instanceof LoggerLayout)) {</td></tr>
<tr class="success popin" data-title="1 test covers line 338" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testInvalidAppenderLayoutClassSet&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="338"></a><a href="#338">338</a></div></td><td class="codeLine"> $this-&gt;warn(&quot;Invalid layout class [$class] sepcified for appender [$name]. Reverting to default layout.&quot;);</td></tr>
<tr class="danger"><td><div align="right"><a name="339"></a><a href="#339">339</a></div></td><td class="codeLine"> return;</td></tr>
<tr><td><div align="right"><a name="340"></a><a href="#340">340</a></div></td><td class="codeLine"> }</td></tr>
<tr><td><div align="right"><a name="341"></a><a href="#341">341</a></div></td><td class="codeLine"></td></tr>
<tr class="success popin" data-title="23 tests cover line 342" data-content="&lt;ul&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::testAppendersWithLayout&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::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;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;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="342"></a><a href="#342">342</a></div></td><td class="codeLine"> if (isset($config['params'])) {</td></tr>
<tr class="success popin" data-title="8 tests cover line 343" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testAppendersWithLayout&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;LoggerLayoutPatternTest::testComplexLayout&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;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="343"></a><a href="#343">343</a></div></td><td class="codeLine"> $this-&gt;setOptions($layout, $config['params']);</td></tr>
<tr class="success popin" data-title="8 tests cover line 344" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testAppendersWithLayout&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;LoggerLayoutPatternTest::testComplexLayout&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;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="344"></a><a href="#344">344</a></div></td><td class="codeLine"> }</td></tr>
<tr><td><div align="right"><a name="345"></a><a href="#345">345</a></div></td><td class="codeLine"></td></tr>
<tr class="success popin" data-title="23 tests cover line 346" data-content="&lt;ul&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::testAppendersWithLayout&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::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;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;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="346"></a><a href="#346">346</a></div></td><td class="codeLine"> $layout-&gt;activateOptions();</td></tr>
<tr class="success popin" data-title="23 tests cover line 347" data-content="&lt;ul&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::testAppendersWithLayout&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::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;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;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="347"></a><a href="#347">347</a></div></td><td class="codeLine"> $appender-&gt;setLayout($layout);</td></tr>
<tr class="success popin" data-title="23 tests cover line 348" data-content="&lt;ul&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::testAppendersWithLayout&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::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;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;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="348"></a><a href="#348">348</a></div></td><td class="codeLine"> }</td></tr>
<tr><td><div align="right"><a name="349"></a><a href="#349">349</a></div></td><td class="codeLine"></td></tr>
<tr><td><div align="right"><a name="350"></a><a href="#350">350</a></div></td><td class="codeLine"> /**</td></tr>
<tr><td><div align="right"><a name="351"></a><a href="#351">351</a></div></td><td class="codeLine"> * Parses filter config, creates the filter and adds it to the appender's</td></tr>
<tr><td><div align="right"><a name="352"></a><a href="#352">352</a></div></td><td class="codeLine"> * filter chain.</td></tr>
<tr><td><div align="right"><a name="353"></a><a href="#353">353</a></div></td><td class="codeLine"> * @param LoggerAppender $appender</td></tr>
<tr><td><div align="right"><a name="354"></a><a href="#354">354</a></div></td><td class="codeLine"> * @param array $config Filter configuration.</td></tr>
<tr><td><div align="right"><a name="355"></a><a href="#355">355</a></div></td><td class="codeLine"> */</td></tr>
<tr><td><div align="right"><a name="356"></a><a href="#356">356</a></div></td><td class="codeLine"> private function createAppenderFilter(LoggerAppender $appender, $config) {</td></tr>
<tr class="success popin" data-title="7 tests cover line 357" data-content="&lt;ul&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::testAppendersWithLayout&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;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="357"></a><a href="#357">357</a></div></td><td class="codeLine"> $name = $appender-&gt;getName();</td></tr>
<tr class="success popin" data-title="7 tests cover line 358" data-content="&lt;ul&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::testAppendersWithLayout&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;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="358"></a><a href="#358">358</a></div></td><td class="codeLine"> $class = $config['class'];</td></tr>
<tr class="success popin" data-title="7 tests cover line 359" data-content="&lt;ul&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::testAppendersWithLayout&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;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="359"></a><a href="#359">359</a></div></td><td class="codeLine"> if (!class_exists($class)) {</td></tr>
<tr class="success popin" data-title="1 test covers line 360" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testNotExistingAppenderFilterClassSet&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="360"></a><a href="#360">360</a></div></td><td class="codeLine"> $this-&gt;warn(&quot;Nonexistant filter class [$class] specified on appender [$name]. Skipping filter definition.&quot;);</td></tr>
<tr class="danger"><td><div align="right"><a name="361"></a><a href="#361">361</a></div></td><td class="codeLine"> return;</td></tr>
<tr><td><div align="right"><a name="362"></a><a href="#362">362</a></div></td><td class="codeLine"> }</td></tr>
<tr><td><div align="right"><a name="363"></a><a href="#363">363</a></div></td><td class="codeLine"></td></tr>
<tr class="success popin" data-title="6 tests cover line 364" data-content="&lt;ul&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::testAppendersWithLayout&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;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="364"></a><a href="#364">364</a></div></td><td class="codeLine"> $filter = new $class();</td></tr>
<tr class="success popin" data-title="6 tests cover line 365" data-content="&lt;ul&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::testAppendersWithLayout&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;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="365"></a><a href="#365">365</a></div></td><td class="codeLine"> if (!($filter instanceof LoggerFilter)) {</td></tr>
<tr class="success popin" data-title="1 test covers line 366" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testInvalidAppenderFilterClassSet&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="366"></a><a href="#366">366</a></div></td><td class="codeLine"> $this-&gt;warn(&quot;Invalid filter class [$class] sepcified on appender [$name]. Skipping filter definition.&quot;);</td></tr>
<tr class="danger"><td><div align="right"><a name="367"></a><a href="#367">367</a></div></td><td class="codeLine"> return;</td></tr>
<tr><td><div align="right"><a name="368"></a><a href="#368">368</a></div></td><td class="codeLine"> }</td></tr>
<tr><td><div align="right"><a name="369"></a><a href="#369">369</a></div></td><td class="codeLine"></td></tr>
<tr class="success popin" data-title="5 tests cover line 370" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testInvalidAppenderFilterParamter&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testAppendersWithLayout&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;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="370"></a><a href="#370">370</a></div></td><td class="codeLine"> if (isset($config['params'])) {</td></tr>
<tr class="success popin" data-title="4 tests cover line 371" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testInvalidAppenderFilterParamter&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testAppendersWithLayout&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;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="371"></a><a href="#371">371</a></div></td><td class="codeLine"> $this-&gt;setOptions($filter, $config['params']);</td></tr>
<tr class="success popin" data-title="3 tests cover line 372" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testAppendersWithLayout&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;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="372"></a><a href="#372">372</a></div></td><td class="codeLine"> }</td></tr>
<tr><td><div align="right"><a name="373"></a><a href="#373">373</a></div></td><td class="codeLine"></td></tr>
<tr class="success popin" data-title="4 tests cover line 374" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testAppendersWithLayout&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;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="374"></a><a href="#374">374</a></div></td><td class="codeLine"> $filter-&gt;activateOptions();</td></tr>
<tr class="success popin" data-title="4 tests cover line 375" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testAppendersWithLayout&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;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="375"></a><a href="#375">375</a></div></td><td class="codeLine"> $appender-&gt;addFilter($filter);</td></tr>
<tr class="success popin" data-title="4 tests cover line 376" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testAppendersWithLayout&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;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="376"></a><a href="#376">376</a></div></td><td class="codeLine"> }</td></tr>
<tr><td><div align="right"><a name="377"></a><a href="#377">377</a></div></td><td class="codeLine"></td></tr>
<tr><td><div align="right"><a name="378"></a><a href="#378">378</a></div></td><td class="codeLine"> /**</td></tr>
<tr><td><div align="right"><a name="379"></a><a href="#379">379</a></div></td><td class="codeLine"> * Configures the root logger</td></tr>
<tr><td><div align="right"><a name="380"></a><a href="#380">380</a></div></td><td class="codeLine"> * @see configureLogger()</td></tr>
<tr><td><div align="right"><a name="381"></a><a href="#381">381</a></div></td><td class="codeLine"> */</td></tr>
<tr><td><div align="right"><a name="382"></a><a href="#382">382</a></div></td><td class="codeLine"> private function configureRootLogger(LoggerHierarchy $hierarchy, $config) {</td></tr>
<tr class="success popin" data-title="39 tests cover line 383" 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::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::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::testAppenderThreshold&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testLoggerThreshold&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testInvalidRootLoggerThreshold&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::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;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="383"></a><a href="#383">383</a></div></td><td class="codeLine"> $logger = $hierarchy-&gt;getRootLogger();</td></tr>
<tr class="success popin" data-title="39 tests cover line 384" 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::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::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::testAppenderThreshold&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testLoggerThreshold&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testInvalidRootLoggerThreshold&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::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;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="384"></a><a href="#384">384</a></div></td><td class="codeLine"> $this-&gt;configureLogger($logger, $config);</td></tr>
<tr class="success popin" data-title="38 tests cover line 385" 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::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::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::testAppenderThreshold&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testLoggerThreshold&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::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;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="385"></a><a href="#385">385</a></div></td><td class="codeLine"> }</td></tr>
<tr><td><div align="right"><a name="386"></a><a href="#386">386</a></div></td><td class="codeLine"></td></tr>
<tr><td><div align="right"><a name="387"></a><a href="#387">387</a></div></td><td class="codeLine"> /**</td></tr>
<tr><td><div align="right"><a name="388"></a><a href="#388">388</a></div></td><td class="codeLine"> * Configures a logger which is not root.</td></tr>
<tr><td><div align="right"><a name="389"></a><a href="#389">389</a></div></td><td class="codeLine"> * @see configureLogger()</td></tr>
<tr><td><div align="right"><a name="390"></a><a href="#390">390</a></div></td><td class="codeLine"> */</td></tr>
<tr><td><div align="right"><a name="391"></a><a href="#391">391</a></div></td><td class="codeLine"> private function configureOtherLogger(LoggerHierarchy $hierarchy, $name, $config) {</td></tr>
<tr><td><div align="right"><a name="392"></a><a href="#392">392</a></div></td><td class="codeLine"> // Get logger from hierarchy (this creates it if it doesn't already exist)</td></tr>
<tr class="success popin" data-title="10 tests cover line 393" data-content="&lt;ul&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::testAppendersWithLayout&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;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;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="393"></a><a href="#393">393</a></div></td><td class="codeLine"> $logger = $hierarchy-&gt;getLogger($name);</td></tr>
<tr class="success popin" data-title="10 tests cover line 394" data-content="&lt;ul&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::testAppendersWithLayout&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;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;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="394"></a><a href="#394">394</a></div></td><td class="codeLine"> $this-&gt;configureLogger($logger, $config);</td></tr>
<tr class="success popin" data-title="7 tests cover line 395" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testAppendersWithLayout&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testLoggerThreshold&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;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="395"></a><a href="#395">395</a></div></td><td class="codeLine"> }</td></tr>
<tr><td><div align="right"><a name="396"></a><a href="#396">396</a></div></td><td class="codeLine"></td></tr>
<tr><td><div align="right"><a name="397"></a><a href="#397">397</a></div></td><td class="codeLine"> /**</td></tr>
<tr><td><div align="right"><a name="398"></a><a href="#398">398</a></div></td><td class="codeLine"> * Configures a logger.</td></tr>
<tr><td><div align="right"><a name="399"></a><a href="#399">399</a></div></td><td class="codeLine"> *</td></tr>
<tr><td><div align="right"><a name="400"></a><a href="#400">400</a></div></td><td class="codeLine"> * @param Logger $logger The logger to configure</td></tr>
<tr><td><div align="right"><a name="401"></a><a href="#401">401</a></div></td><td class="codeLine"> * @param array $config Logger configuration options.</td></tr>
<tr><td><div align="right"><a name="402"></a><a href="#402">402</a></div></td><td class="codeLine"> */</td></tr>
<tr><td><div align="right"><a name="403"></a><a href="#403">403</a></div></td><td class="codeLine"> private function configureLogger(Logger $logger, $config) {</td></tr>
<tr class="success popin" data-title="41 tests cover line 404" 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::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::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::testAppenderThreshold&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;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::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;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="404"></a><a href="#404">404</a></div></td><td class="codeLine"> $loggerName = $logger-&gt;getName();</td></tr>
<tr><td><div align="right"><a name="405"></a><a href="#405">405</a></div></td><td class="codeLine"></td></tr>
<tr><td><div align="right"><a name="406"></a><a href="#406">406</a></div></td><td class="codeLine"> // Set logger level</td></tr>
<tr class="success popin" data-title="41 tests cover line 407" 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::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::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::testAppenderThreshold&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;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::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;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="407"></a><a href="#407">407</a></div></td><td class="codeLine"> if (isset($config['level'])) {</td></tr>
<tr class="success popin" data-title="26 tests cover line 408" 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::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::testNonexistantFileFallback&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;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::testAdditivity2&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerAppenderPhpTest::testPhp&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;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="408"></a><a href="#408">408</a></div></td><td class="codeLine"> $level = LoggerLevel::toLevel($config['level']);</td></tr>
<tr class="success popin" data-title="26 tests cover line 409" 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::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::testNonexistantFileFallback&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;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::testAdditivity2&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerAppenderPhpTest::testPhp&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;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="409"></a><a href="#409">409</a></div></td><td class="codeLine"> if (isset($level)) {</td></tr>
<tr class="success popin" data-title="24 tests cover line 410" 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::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::testNonexistantFileFallback&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testLoggerThreshold&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::testAdditivity2&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerAppenderPhpTest::testPhp&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;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="410"></a><a href="#410">410</a></div></td><td class="codeLine"> $logger-&gt;setLevel($level);</td></tr>
<tr class="success popin" data-title="24 tests cover line 411" 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::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::testNonexistantFileFallback&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testLoggerThreshold&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::testAdditivity2&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerAppenderPhpTest::testPhp&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;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="411"></a><a href="#411">411</a></div></td><td class="codeLine"> } else {</td></tr>
<tr class="success popin" data-title="2 tests cover line 412" data-content="&lt;ul&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;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="412"></a><a href="#412">412</a></div></td><td class="codeLine"> $this-&gt;warn(&quot;Invalid level value [{$config['level']}] specified for logger [$loggerName]. Ignoring level definition.&quot;);</td></tr>
<tr><td><div align="right"><a name="413"></a><a href="#413">413</a></div></td><td class="codeLine"> }</td></tr>
<tr class="success popin" data-title="24 tests cover line 414" 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::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::testNonexistantFileFallback&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testLoggerThreshold&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::testAdditivity2&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerAppenderPhpTest::testPhp&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;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="414"></a><a href="#414">414</a></div></td><td class="codeLine"> }</td></tr>
<tr><td><div align="right"><a name="415"></a><a href="#415">415</a></div></td><td class="codeLine"></td></tr>
<tr><td><div align="right"><a name="416"></a><a href="#416">416</a></div></td><td class="codeLine"> // Link appenders to logger</td></tr>
<tr class="success popin" data-title="39 tests cover line 417" 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::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::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::testAppenderThreshold&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testLoggerThreshold&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::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;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="417"></a><a href="#417">417</a></div></td><td class="codeLine"> if (isset($config['appenders'])) {</td></tr>
<tr class="success popin" data-title="39 tests cover line 418" 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::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::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::testAppenderThreshold&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testLoggerThreshold&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::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;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="418"></a><a href="#418">418</a></div></td><td class="codeLine"> foreach($config['appenders'] as $appenderName) {</td></tr>
<tr class="success popin" data-title="39 tests cover line 419" 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::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::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::testAppenderThreshold&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testLoggerThreshold&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::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;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="419"></a><a href="#419">419</a></div></td><td class="codeLine"> if (isset($this-&gt;appenders[$appenderName])) {</td></tr>
<tr class="success popin" data-title="38 tests cover line 420" 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::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::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::testAppenderThreshold&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testLoggerThreshold&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::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;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="420"></a><a href="#420">420</a></div></td><td class="codeLine"> $logger-&gt;addAppender($this-&gt;appenders[$appenderName]);</td></tr>
<tr class="success popin" data-title="38 tests cover line 421" 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::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::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::testAppenderThreshold&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testLoggerThreshold&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::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;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="421"></a><a href="#421">421</a></div></td><td class="codeLine"> } else {</td></tr>
<tr class="success popin" data-title="1 test covers line 422" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testNotExistingLoggerAppendersClass&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="422"></a><a href="#422">422</a></div></td><td class="codeLine"> $this-&gt;warn(&quot;Nonexistnant appender [$appenderName] linked to logger [$loggerName].&quot;);</td></tr>
<tr><td><div align="right"><a name="423"></a><a href="#423">423</a></div></td><td class="codeLine"> }</td></tr>
<tr class="success popin" data-title="38 tests cover line 424" 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::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::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::testAppenderThreshold&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testLoggerThreshold&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::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;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="424"></a><a href="#424">424</a></div></td><td class="codeLine"> }</td></tr>
<tr class="success popin" data-title="38 tests cover line 425" 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::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::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::testAppenderThreshold&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testLoggerThreshold&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::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;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="425"></a><a href="#425">425</a></div></td><td class="codeLine"> }</td></tr>
<tr><td><div align="right"><a name="426"></a><a href="#426">426</a></div></td><td class="codeLine"></td></tr>
<tr><td><div align="right"><a name="427"></a><a href="#427">427</a></div></td><td class="codeLine"> // Set logger additivity</td></tr>
<tr class="success popin" data-title="38 tests cover line 428" 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::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::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::testAppenderThreshold&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testLoggerThreshold&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::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;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="428"></a><a href="#428">428</a></div></td><td class="codeLine"> if (isset($config['additivity'])) {</td></tr>
<tr><td><div align="right"><a name="429"></a><a href="#429">429</a></div></td><td class="codeLine"> try {</td></tr>
<tr class="success popin" data-title="5 tests cover line 430" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testInvalidLoggerAddivity&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testAppendersWithLayout&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;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="430"></a><a href="#430">430</a></div></td><td class="codeLine"> $additivity = LoggerOptionConverter::toBooleanEx($config['additivity'], null);</td></tr>
<tr class="success popin" data-title="4 tests cover line 431" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testAppendersWithLayout&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;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="431"></a><a href="#431">431</a></div></td><td class="codeLine"> $logger-&gt;setAdditivity($additivity);</td></tr>
<tr class="success popin" data-title="5 tests cover line 432" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testInvalidLoggerAddivity&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testAppendersWithLayout&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;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="432"></a><a href="#432">432</a></div></td><td class="codeLine"> } catch (Exception $ex) {</td></tr>
<tr class="success popin" data-title="1 test covers line 433" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testInvalidLoggerAddivity&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="433"></a><a href="#433">433</a></div></td><td class="codeLine"> $this-&gt;warn(&quot;Invalid additivity value [{$config['additivity']}] specified for logger [$loggerName]. Ignoring additivity setting.&quot;);</td></tr>
<tr><td><div align="right"><a name="434"></a><a href="#434">434</a></div></td><td class="codeLine"> }</td></tr>
<tr class="success popin" data-title="4 tests cover line 435" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testAppendersWithLayout&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;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="435"></a><a href="#435">435</a></div></td><td class="codeLine"> }</td></tr>
<tr class="success popin" data-title="38 tests cover line 436" 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::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::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::testAppenderThreshold&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testLoggerThreshold&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::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;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="436"></a><a href="#436">436</a></div></td><td class="codeLine"> }</td></tr>
<tr><td><div align="right"><a name="437"></a><a href="#437">437</a></div></td><td class="codeLine"></td></tr>
<tr><td><div align="right"><a name="438"></a><a href="#438">438</a></div></td><td class="codeLine"> /**</td></tr>
<tr><td><div align="right"><a name="439"></a><a href="#439">439</a></div></td><td class="codeLine"> * Helper method which applies given options to an object which has setters</td></tr>
<tr><td><div align="right"><a name="440"></a><a href="#440">440</a></div></td><td class="codeLine"> * for these options (such as appenders, layouts, etc.).</td></tr>
<tr><td><div align="right"><a name="441"></a><a href="#441">441</a></div></td><td class="codeLine"> *</td></tr>
<tr><td><div align="right"><a name="442"></a><a href="#442">442</a></div></td><td class="codeLine"> * For example, if options are:</td></tr>
<tr><td><div align="right"><a name="443"></a><a href="#443">443</a></div></td><td class="codeLine"> * &lt;code&gt;</td></tr>
<tr><td><div align="right"><a name="444"></a><a href="#444">444</a></div></td><td class="codeLine"> * array(</td></tr>
<tr><td><div align="right"><a name="445"></a><a href="#445">445</a></div></td><td class="codeLine"> * 'file' =&gt; '/tmp/myfile.log',</td></tr>
<tr><td><div align="right"><a name="446"></a><a href="#446">446</a></div></td><td class="codeLine"> * 'append' =&gt; true</td></tr>
<tr><td><div align="right"><a name="447"></a><a href="#447">447</a></div></td><td class="codeLine"> * )</td></tr>
<tr><td><div align="right"><a name="448"></a><a href="#448">448</a></div></td><td class="codeLine"> * &lt;/code&gt;</td></tr>
<tr><td><div align="right"><a name="449"></a><a href="#449">449</a></div></td><td class="codeLine"> *</td></tr>
<tr><td><div align="right"><a name="450"></a><a href="#450">450</a></div></td><td class="codeLine"> * This method will call:</td></tr>
<tr><td><div align="right"><a name="451"></a><a href="#451">451</a></div></td><td class="codeLine"> * &lt;code&gt;</td></tr>
<tr><td><div align="right"><a name="452"></a><a href="#452">452</a></div></td><td class="codeLine"> * $object-&gt;setFile('/tmp/myfile.log')</td></tr>
<tr><td><div align="right"><a name="453"></a><a href="#453">453</a></div></td><td class="codeLine"> * $object-&gt;setAppend(true)</td></tr>
<tr><td><div align="right"><a name="454"></a><a href="#454">454</a></div></td><td class="codeLine"> * &lt;/code&gt;</td></tr>
<tr><td><div align="right"><a name="455"></a><a href="#455">455</a></div></td><td class="codeLine"> *</td></tr>
<tr><td><div align="right"><a name="456"></a><a href="#456">456</a></div></td><td class="codeLine"> * If required setters do not exist, it will produce a warning.</td></tr>
<tr><td><div align="right"><a name="457"></a><a href="#457">457</a></div></td><td class="codeLine"> *</td></tr>
<tr><td><div align="right"><a name="458"></a><a href="#458">458</a></div></td><td class="codeLine"> * @param mixed $object The object to configure.</td></tr>
<tr><td><div align="right"><a name="459"></a><a href="#459">459</a></div></td><td class="codeLine"> * @param unknown_type $options</td></tr>
<tr><td><div align="right"><a name="460"></a><a href="#460">460</a></div></td><td class="codeLine"> */</td></tr>
<tr><td><div align="right"><a name="461"></a><a href="#461">461</a></div></td><td class="codeLine"> private function setOptions($object, $options) {</td></tr>
<tr class="success popin" data-title="16 tests cover line 462" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testInvalidAppenderFilterParamter&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testAppendersWithLayout&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::testHtmlLineBreaks&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;LoggerAppenderSocketTest::testLogging&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::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;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="462"></a><a href="#462">462</a></div></td><td class="codeLine"> foreach($options as $name =&gt; $value) {</td></tr>
<tr class="success popin" data-title="16 tests cover line 463" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testInvalidAppenderFilterParamter&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testAppendersWithLayout&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::testHtmlLineBreaks&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;LoggerAppenderSocketTest::testLogging&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::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;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="463"></a><a href="#463">463</a></div></td><td class="codeLine"> $setter = &quot;set$name&quot;;</td></tr>
<tr class="success popin" data-title="16 tests cover line 464" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testInvalidAppenderFilterParamter&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testAppendersWithLayout&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::testHtmlLineBreaks&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;LoggerAppenderSocketTest::testLogging&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::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;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="464"></a><a href="#464">464</a></div></td><td class="codeLine"> if (method_exists($object, $setter)) {</td></tr>
<tr class="success popin" data-title="15 tests cover line 465" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testAppendersWithLayout&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::testHtmlLineBreaks&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;LoggerAppenderSocketTest::testLogging&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::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;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="465"></a><a href="#465">465</a></div></td><td class="codeLine"> $object-&gt;$setter($value);</td></tr>
<tr class="success popin" data-title="15 tests cover line 466" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testAppendersWithLayout&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::testHtmlLineBreaks&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;LoggerAppenderSocketTest::testLogging&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::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;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="466"></a><a href="#466">466</a></div></td><td class="codeLine"> } else {</td></tr>
<tr class="success popin" data-title="1 test covers line 467" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testInvalidAppenderFilterParamter&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="467"></a><a href="#467">467</a></div></td><td class="codeLine"> $class = get_class($object);</td></tr>
<tr class="success popin" data-title="1 test covers line 468" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testInvalidAppenderFilterParamter&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="468"></a><a href="#468">468</a></div></td><td class="codeLine"> $this-&gt;warn(&quot;Nonexistant option [$name] specified on [$class]. Skipping.&quot;);</td></tr>
<tr><td><div align="right"><a name="469"></a><a href="#469">469</a></div></td><td class="codeLine"> }</td></tr>
<tr class="success popin" data-title="15 tests cover line 470" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testAppendersWithLayout&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::testHtmlLineBreaks&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;LoggerAppenderSocketTest::testLogging&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::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;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="470"></a><a href="#470">470</a></div></td><td class="codeLine"> }</td></tr>
<tr class="success popin" data-title="15 tests cover line 471" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testAppendersWithLayout&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::testHtmlLineBreaks&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;LoggerAppenderSocketTest::testLogging&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::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;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="471"></a><a href="#471">471</a></div></td><td class="codeLine"> }</td></tr>
<tr><td><div align="right"><a name="472"></a><a href="#472">472</a></div></td><td class="codeLine"></td></tr>
<tr><td><div align="right"><a name="473"></a><a href="#473">473</a></div></td><td class="codeLine"> /** Helper method to simplify error reporting. */</td></tr>
<tr><td><div align="right"><a name="474"></a><a href="#474">474</a></div></td><td class="codeLine"> private function warn($message) {</td></tr>
<tr class="success popin" data-title="22 tests cover line 475" data-content="&lt;ul&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::testNoRenderingClassSet&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testNoRenderedClassSet&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::testInvalidThreshold&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testAppenderInvalidThreshold&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;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="475"></a><a href="#475">475</a></div></td><td class="codeLine"> trigger_error(&quot;log4php: $message&quot;, E_USER_WARNING);</td></tr>
<tr class="success popin" data-title="1 test covers line 476" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;LoggerConfiguratorTest::testNonexistantFileFallback&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="476"></a><a href="#476">476</a></div></td><td class="codeLine"> }</td></tr>
<tr><td><div align="right"><a name="477"></a><a href="#477">477</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>