<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head><meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<title>LoggerRepositoryExImpl xref</title>
<link type="text/css" rel="stylesheet" href="../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../apidocs/org/apache/log4j/LoggerRepositoryExImpl.html">View Javadoc</a></div><pre>
<a class="jxr_linenumber" name="L1" href="#L1">1</a>   <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="L2" href="#L2">2</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one or more</em>
<a class="jxr_linenumber" name="L3" href="#L3">3</a>   <em class="jxr_comment"> * contributor license agreements.  See the NOTICE file distributed with</em>
<a class="jxr_linenumber" name="L4" href="#L4">4</a>   <em class="jxr_comment"> * this work for additional information regarding copyright ownership.</em>
<a class="jxr_linenumber" name="L5" href="#L5">5</a>   <em class="jxr_comment"> * The ASF licenses this file to You under the Apache License, Version 2.0</em>
<a class="jxr_linenumber" name="L6" href="#L6">6</a>   <em class="jxr_comment"> * (the "License"); you may not use this file except in compliance with</em>
<a class="jxr_linenumber" name="L7" href="#L7">7</a>   <em class="jxr_comment"> * the License.  You may obtain a copy of the License at</em>
<a class="jxr_linenumber" name="L8" href="#L8">8</a>   <em class="jxr_comment"> *</em>
<a class="jxr_linenumber" name="L9" href="#L9">9</a>   <em class="jxr_comment"> *      <a href="http://www.apache.org/licenses/LICENSE-2." target="alexandria_uri">http://www.apache.org/licenses/LICENSE-2.</a>0</em>
<a class="jxr_linenumber" name="L10" href="#L10">10</a>  <em class="jxr_comment"> *</em>
<a class="jxr_linenumber" name="L11" href="#L11">11</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing, software</em>
<a class="jxr_linenumber" name="L12" href="#L12">12</a>  <em class="jxr_comment"> * distributed under the License is distributed on an "AS IS" BASIS,</em>
<a class="jxr_linenumber" name="L13" href="#L13">13</a>  <em class="jxr_comment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</em>
<a class="jxr_linenumber" name="L14" href="#L14">14</a>  <em class="jxr_comment"> * See the License for the specific language governing permissions and</em>
<a class="jxr_linenumber" name="L15" href="#L15">15</a>  <em class="jxr_comment"> * limitations under the License.</em>
<a class="jxr_linenumber" name="L16" href="#L16">16</a>  <em class="jxr_comment"> */</em>
<a class="jxr_linenumber" name="L17" href="#L17">17</a>  
<a class="jxr_linenumber" name="L18" href="#L18">18</a>  <strong class="jxr_keyword">package</strong> org.apache.log4j;
<a class="jxr_linenumber" name="L19" href="#L19">19</a>  
<a class="jxr_linenumber" name="L20" href="#L20">20</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.helpers.LogLog;
<a class="jxr_linenumber" name="L21" href="#L21">21</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.or.ObjectRenderer;
<a class="jxr_linenumber" name="L22" href="#L22">22</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.or.RendererMap;
<a class="jxr_linenumber" name="L23" href="#L23">23</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.plugins.Plugin;
<a class="jxr_linenumber" name="L24" href="#L24">24</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.plugins.PluginRegistry;
<a class="jxr_linenumber" name="L25" href="#L25">25</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.scheduler.Scheduler;
<a class="jxr_linenumber" name="L26" href="#L26">26</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.spi.ErrorItem;
<a class="jxr_linenumber" name="L27" href="#L27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.spi.HierarchyEventListener;
<a class="jxr_linenumber" name="L28" href="#L28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.spi.LoggerEventListener;
<a class="jxr_linenumber" name="L29" href="#L29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.spi.LoggerFactory;
<a class="jxr_linenumber" name="L30" href="#L30">30</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.spi.LoggerRepository;
<a class="jxr_linenumber" name="L31" href="#L31">31</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.spi.LoggerRepositoryEventListener;
<a class="jxr_linenumber" name="L32" href="#L32">32</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.spi.LoggerRepositoryEx;
<a class="jxr_linenumber" name="L33" href="#L33">33</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.spi.RendererSupport;
<a class="jxr_linenumber" name="L34" href="#L34">34</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.xml.UnrecognizedElementHandler;
<a class="jxr_linenumber" name="L35" href="#L35">35</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.xml.DOMConfigurator;
<a class="jxr_linenumber" name="L36" href="#L36">36</a>  <strong class="jxr_keyword">import</strong> org.w3c.dom.Element;
<a class="jxr_linenumber" name="L37" href="#L37">37</a>  
<a class="jxr_linenumber" name="L38" href="#L38">38</a>  <strong class="jxr_keyword">import</strong> java.util.ArrayList;
<a class="jxr_linenumber" name="L39" href="#L39">39</a>  <strong class="jxr_keyword">import</strong> java.util.Enumeration;
<a class="jxr_linenumber" name="L40" href="#L40">40</a>  <strong class="jxr_keyword">import</strong> java.util.HashMap;
<a class="jxr_linenumber" name="L41" href="#L41">41</a>  <strong class="jxr_keyword">import</strong> java.util.Hashtable;
<a class="jxr_linenumber" name="L42" href="#L42">42</a>  <strong class="jxr_keyword">import</strong> java.util.List;
<a class="jxr_linenumber" name="L43" href="#L43">43</a>  <strong class="jxr_keyword">import</strong> java.util.Map;
<a class="jxr_linenumber" name="L44" href="#L44">44</a>  <strong class="jxr_keyword">import</strong> java.util.Properties;
<a class="jxr_linenumber" name="L45" href="#L45">45</a>  <strong class="jxr_keyword">import</strong> java.util.Vector;
<a class="jxr_linenumber" name="L46" href="#L46">46</a>  
<a class="jxr_linenumber" name="L47" href="#L47">47</a>  
<a class="jxr_linenumber" name="L48" href="#L48">48</a>  <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L49" href="#L49">49</a>  <em class="jxr_javadoccomment"> * This class implements LoggerRepositoryEx by</em>
<a class="jxr_linenumber" name="L50" href="#L50">50</a>  <em class="jxr_javadoccomment"> *   wrapping an existing LoggerRepository implementation</em>
<a class="jxr_linenumber" name="L51" href="#L51">51</a>  <em class="jxr_javadoccomment"> *   and implementing the newly added capabilities.</em>
<a class="jxr_linenumber" name="L52" href="#L52">52</a>  <em class="jxr_javadoccomment">*/</em>
<a class="jxr_linenumber" name="L53" href="#L53">53</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">class</strong> <a href="../../../org/apache/log4j/LoggerRepositoryExImpl.html">LoggerRepositoryExImpl</a>
<a class="jxr_linenumber" name="L54" href="#L54">54</a>          <strong class="jxr_keyword">implements</strong> LoggerRepositoryEx,
<a class="jxr_linenumber" name="L55" href="#L55">55</a>          RendererSupport,
<a class="jxr_linenumber" name="L56" href="#L56">56</a>          UnrecognizedElementHandler {
<a class="jxr_linenumber" name="L57" href="#L57">57</a>  
<a class="jxr_linenumber" name="L58" href="#L58">58</a>      <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L59" href="#L59">59</a>  <em class="jxr_javadoccomment">     * Wrapped logger repository.</em>
<a class="jxr_linenumber" name="L60" href="#L60">60</a>  <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L61" href="#L61">61</a>    <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> LoggerRepository repo;
<a class="jxr_linenumber" name="L62" href="#L62">62</a>  
<a class="jxr_linenumber" name="L63" href="#L63">63</a>      <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L64" href="#L64">64</a>  <em class="jxr_javadoccomment">     * Logger factory.  Does not affect class of logger</em>
<a class="jxr_linenumber" name="L65" href="#L65">65</a>  <em class="jxr_javadoccomment">     * created by underlying repository.</em>
<a class="jxr_linenumber" name="L66" href="#L66">66</a>  <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L67" href="#L67">67</a>    <strong class="jxr_keyword">private</strong> LoggerFactory loggerFactory;
<a class="jxr_linenumber" name="L68" href="#L68">68</a>  
<a class="jxr_linenumber" name="L69" href="#L69">69</a>      <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L70" href="#L70">70</a>  <em class="jxr_javadoccomment">     *  Renderer support.</em>
<a class="jxr_linenumber" name="L71" href="#L71">71</a>  <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L72" href="#L72">72</a>    <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> RendererSupport rendererSupport;
<a class="jxr_linenumber" name="L73" href="#L73">73</a>  
<a class="jxr_linenumber" name="L74" href="#L74">74</a>      <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L75" href="#L75">75</a>  <em class="jxr_javadoccomment">     * List of repository event listeners.</em>
<a class="jxr_linenumber" name="L76" href="#L76">76</a>  <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L77" href="#L77">77</a>    <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> ArrayList repositoryEventListeners = <strong class="jxr_keyword">new</strong> ArrayList();
<a class="jxr_linenumber" name="L78" href="#L78">78</a>      <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L79" href="#L79">79</a>  <em class="jxr_javadoccomment">     * Map of HierarchyEventListener keyed by LoggingEventListener.</em>
<a class="jxr_linenumber" name="L80" href="#L80">80</a>  <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L81" href="#L81">81</a>    <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> Map loggerEventListeners = <strong class="jxr_keyword">new</strong> HashMap();
<a class="jxr_linenumber" name="L82" href="#L82">82</a>      <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L83" href="#L83">83</a>  <em class="jxr_javadoccomment">     * Name of hierarchy.</em>
<a class="jxr_linenumber" name="L84" href="#L84">84</a>  <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L85" href="#L85">85</a>    <strong class="jxr_keyword">private</strong> String name;
<a class="jxr_linenumber" name="L86" href="#L86">86</a>      <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L87" href="#L87">87</a>  <em class="jxr_javadoccomment">     * Plug in registry.</em>
<a class="jxr_linenumber" name="L88" href="#L88">88</a>  <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L89" href="#L89">89</a>    <strong class="jxr_keyword">private</strong> <a href="../../../org/apache/log4j/plugins/PluginRegistry.html">PluginRegistry</a> pluginRegistry;
<a class="jxr_linenumber" name="L90" href="#L90">90</a>      <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L91" href="#L91">91</a>  <em class="jxr_javadoccomment">     * Properties.</em>
<a class="jxr_linenumber" name="L92" href="#L92">92</a>  <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L93" href="#L93">93</a>    <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> Map properties = <strong class="jxr_keyword">new</strong> Hashtable();
<a class="jxr_linenumber" name="L94" href="#L94">94</a>      <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L95" href="#L95">95</a>  <em class="jxr_javadoccomment">     * Scheduler.</em>
<a class="jxr_linenumber" name="L96" href="#L96">96</a>  <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L97" href="#L97">97</a>    <strong class="jxr_keyword">private</strong> <a href="../../../org/apache/log4j/scheduler/Scheduler.html">Scheduler</a> scheduler;
<a class="jxr_linenumber" name="L98" href="#L98">98</a>  
<a class="jxr_linenumber" name="L99" href="#L99">99</a>    <em class="jxr_javadoccomment">/** The repository can also be used as an object store</em>
<a class="jxr_linenumber" name="L100" href="#L100">100</a> <em class="jxr_javadoccomment">   * for various objects used by log4j components.</em>
<a class="jxr_linenumber" name="L101" href="#L101">101</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="L102" href="#L102">102</a>   <strong class="jxr_keyword">private</strong> Map objectMap = <strong class="jxr_keyword">new</strong> HashMap();
<a class="jxr_linenumber" name="L103" href="#L103">103</a> 
<a class="jxr_linenumber" name="L104" href="#L104">104</a> 
<a class="jxr_linenumber" name="L105" href="#L105">105</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L106" href="#L106">106</a> <em class="jxr_javadoccomment">     * Error list.</em>
<a class="jxr_linenumber" name="L107" href="#L107">107</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L108" href="#L108">108</a>   <strong class="jxr_keyword">private</strong> List errorList = <strong class="jxr_keyword">new</strong> Vector();
<a class="jxr_linenumber" name="L109" href="#L109">109</a> 
<a class="jxr_linenumber" name="L110" href="#L110">110</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L111" href="#L111">111</a> <em class="jxr_javadoccomment">     * True if hierarchy has not been modified.</em>
<a class="jxr_linenumber" name="L112" href="#L112">112</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L113" href="#L113">113</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> pristine = <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="L114" href="#L114">114</a> 
<a class="jxr_linenumber" name="L115" href="#L115">115</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L116" href="#L116">116</a> <em class="jxr_javadoccomment">     Constructs a new logger hierarchy.</em>
<a class="jxr_linenumber" name="L117" href="#L117">117</a> 
<a class="jxr_linenumber" name="L118" href="#L118">118</a> <em class="jxr_javadoccomment">     @param repository Base implementation of repository.</em>
<a class="jxr_linenumber" name="L119" href="#L119">119</a> 
<a class="jxr_linenumber" name="L120" href="#L120">120</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="L121" href="#L121">121</a>   <strong class="jxr_keyword">public</strong> <a href="../../../org/apache/log4j/LoggerRepositoryExImpl.html">LoggerRepositoryExImpl</a>(<strong class="jxr_keyword">final</strong> LoggerRepository repository) {
<a class="jxr_linenumber" name="L122" href="#L122">122</a>     <strong class="jxr_keyword">super</strong>();
<a class="jxr_linenumber" name="L123" href="#L123">123</a>     <strong class="jxr_keyword">if</strong> (repository == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L124" href="#L124">124</a>         <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> NullPointerException(<span class="jxr_string">"repository"</span>);
<a class="jxr_linenumber" name="L125" href="#L125">125</a>     }
<a class="jxr_linenumber" name="L126" href="#L126">126</a>     repo = repository;
<a class="jxr_linenumber" name="L127" href="#L127">127</a>     <strong class="jxr_keyword">if</strong> (repository instanceof RendererSupport) {
<a class="jxr_linenumber" name="L128" href="#L128">128</a>         rendererSupport = (RendererSupport) repository;
<a class="jxr_linenumber" name="L129" href="#L129">129</a>     } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="L130" href="#L130">130</a>         rendererSupport = <strong class="jxr_keyword">new</strong> <a href="../../../org/apache/log4j/LoggerRepositoryExImpl.html">RendererSupportImpl</a>();
<a class="jxr_linenumber" name="L131" href="#L131">131</a>     }
<a class="jxr_linenumber" name="L132" href="#L132">132</a>   }
<a class="jxr_linenumber" name="L133" href="#L133">133</a> 
<a class="jxr_linenumber" name="L134" href="#L134">134</a> 
<a class="jxr_linenumber" name="L135" href="#L135">135</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L136" href="#L136">136</a> <em class="jxr_javadoccomment">    Add a {@link LoggerRepositoryEventListener} to the repository. The</em>
<a class="jxr_linenumber" name="L137" href="#L137">137</a> <em class="jxr_javadoccomment">    listener will be called when repository events occur.</em>
<a class="jxr_linenumber" name="L138" href="#L138">138</a> <em class="jxr_javadoccomment">    @param listener listener</em>
<a class="jxr_linenumber" name="L139" href="#L139">139</a> <em class="jxr_javadoccomment">    */</em>
<a class="jxr_linenumber" name="L140" href="#L140">140</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> addLoggerRepositoryEventListener(
<a class="jxr_linenumber" name="L141" href="#L141">141</a>     <strong class="jxr_keyword">final</strong> <a href="../../../org/apache/log4j/spi/LoggerRepositoryEventListener.html">LoggerRepositoryEventListener</a> listener) {
<a class="jxr_linenumber" name="L142" href="#L142">142</a>     <strong class="jxr_keyword">synchronized</strong> (repositoryEventListeners) {
<a class="jxr_linenumber" name="L143" href="#L143">143</a>       <strong class="jxr_keyword">if</strong> (repositoryEventListeners.contains(listener)) {
<a class="jxr_linenumber" name="L144" href="#L144">144</a>         LogLog.warn(
<a class="jxr_linenumber" name="L145" href="#L145">145</a>           <span class="jxr_string">"Ignoring attempt to add a previously "</span>
<a class="jxr_linenumber" name="L146" href="#L146">146</a>                   + <span class="jxr_string">"registered LoggerRepositoryEventListener."</span>);
<a class="jxr_linenumber" name="L147" href="#L147">147</a>       } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="L148" href="#L148">148</a>         repositoryEventListeners.add(listener);
<a class="jxr_linenumber" name="L149" href="#L149">149</a>       }
<a class="jxr_linenumber" name="L150" href="#L150">150</a>     }
<a class="jxr_linenumber" name="L151" href="#L151">151</a>   }
<a class="jxr_linenumber" name="L152" href="#L152">152</a> 
<a class="jxr_linenumber" name="L153" href="#L153">153</a> 
<a class="jxr_linenumber" name="L154" href="#L154">154</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L155" href="#L155">155</a> <em class="jxr_javadoccomment">    Remove a {@link LoggerRepositoryEventListener} from the repository.</em>
<a class="jxr_linenumber" name="L156" href="#L156">156</a> <em class="jxr_javadoccomment">    @param listener listener</em>
<a class="jxr_linenumber" name="L157" href="#L157">157</a> <em class="jxr_javadoccomment">    */</em>
<a class="jxr_linenumber" name="L158" href="#L158">158</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> removeLoggerRepositoryEventListener(
<a class="jxr_linenumber" name="L159" href="#L159">159</a>     <strong class="jxr_keyword">final</strong> <a href="../../../org/apache/log4j/spi/LoggerRepositoryEventListener.html">LoggerRepositoryEventListener</a> listener) {
<a class="jxr_linenumber" name="L160" href="#L160">160</a>     <strong class="jxr_keyword">synchronized</strong> (repositoryEventListeners) {
<a class="jxr_linenumber" name="L161" href="#L161">161</a>       <strong class="jxr_keyword">if</strong> (!repositoryEventListeners.contains(listener)) {
<a class="jxr_linenumber" name="L162" href="#L162">162</a>         LogLog.warn(
<a class="jxr_linenumber" name="L163" href="#L163">163</a>           <span class="jxr_string">"Ignoring attempt to remove a "</span>
<a class="jxr_linenumber" name="L164" href="#L164">164</a>                   + <span class="jxr_string">"non-registered LoggerRepositoryEventListener."</span>);
<a class="jxr_linenumber" name="L165" href="#L165">165</a>       } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="L166" href="#L166">166</a>         repositoryEventListeners.remove(listener);
<a class="jxr_linenumber" name="L167" href="#L167">167</a>       }
<a class="jxr_linenumber" name="L168" href="#L168">168</a>     }
<a class="jxr_linenumber" name="L169" href="#L169">169</a>   }
<a class="jxr_linenumber" name="L170" href="#L170">170</a> 
<a class="jxr_linenumber" name="L171" href="#L171">171</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L172" href="#L172">172</a> <em class="jxr_javadoccomment">    Add a {@link LoggerEventListener} to the repository. The  listener</em>
<a class="jxr_linenumber" name="L173" href="#L173">173</a> <em class="jxr_javadoccomment">    will be called when repository events occur.</em>
<a class="jxr_linenumber" name="L174" href="#L174">174</a> <em class="jxr_javadoccomment">    @param listener listener</em>
<a class="jxr_linenumber" name="L175" href="#L175">175</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="L176" href="#L176">176</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> addLoggerEventListener(<strong class="jxr_keyword">final</strong> <a href="../../../org/apache/log4j/spi/LoggerEventListener.html">LoggerEventListener</a> listener) {
<a class="jxr_linenumber" name="L177" href="#L177">177</a>     <strong class="jxr_keyword">synchronized</strong> (loggerEventListeners) {
<a class="jxr_linenumber" name="L178" href="#L178">178</a>       <strong class="jxr_keyword">if</strong> (loggerEventListeners.get(listener) != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L179" href="#L179">179</a>         LogLog.warn(
<a class="jxr_linenumber" name="L180" href="#L180">180</a>          <span class="jxr_string">"Ignoring attempt to add a previously registerd LoggerEventListener."</span>);
<a class="jxr_linenumber" name="L181" href="#L181">181</a>       } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="L182" href="#L182">182</a>         <a href="../../../org/apache/log4j/LoggerRepositoryExImpl.html">HierarchyEventListenerProxy</a> proxy =
<a class="jxr_linenumber" name="L183" href="#L183">183</a>                 <strong class="jxr_keyword">new</strong> <a href="../../../org/apache/log4j/LoggerRepositoryExImpl.html">HierarchyEventListenerProxy</a>(listener);
<a class="jxr_linenumber" name="L184" href="#L184">184</a>         loggerEventListeners.put(listener, proxy);
<a class="jxr_linenumber" name="L185" href="#L185">185</a>         repo.addHierarchyEventListener(proxy);
<a class="jxr_linenumber" name="L186" href="#L186">186</a>       }
<a class="jxr_linenumber" name="L187" href="#L187">187</a>     }
<a class="jxr_linenumber" name="L188" href="#L188">188</a>   }
<a class="jxr_linenumber" name="L189" href="#L189">189</a> 
<a class="jxr_linenumber" name="L190" href="#L190">190</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L191" href="#L191">191</a> <em class="jxr_javadoccomment">       Add a {@link org.apache.log4j.spi.HierarchyEventListener}</em>
<a class="jxr_linenumber" name="L192" href="#L192">192</a> <em class="jxr_javadoccomment">     event to the repository.</em>
<a class="jxr_linenumber" name="L193" href="#L193">193</a> <em class="jxr_javadoccomment">     @param listener listener</em>
<a class="jxr_linenumber" name="L194" href="#L194">194</a> <em class="jxr_javadoccomment">       @deprecated Superceded by addLoggerEventListener</em>
<a class="jxr_linenumber" name="L195" href="#L195">195</a> <em class="jxr_javadoccomment">    */</em>
<a class="jxr_linenumber" name="L196" href="#L196">196</a>     <strong class="jxr_keyword">public</strong>
<a class="jxr_linenumber" name="L197" href="#L197">197</a>     <strong class="jxr_keyword">void</strong> addHierarchyEventListener(<strong class="jxr_keyword">final</strong> HierarchyEventListener listener) {
<a class="jxr_linenumber" name="L198" href="#L198">198</a>         repo.addHierarchyEventListener(listener);
<a class="jxr_linenumber" name="L199" href="#L199">199</a>     }
<a class="jxr_linenumber" name="L200" href="#L200">200</a> 
<a class="jxr_linenumber" name="L201" href="#L201">201</a> 
<a class="jxr_linenumber" name="L202" href="#L202">202</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L203" href="#L203">203</a> <em class="jxr_javadoccomment">    Remove a {@link LoggerEventListener} from the repository.</em>
<a class="jxr_linenumber" name="L204" href="#L204">204</a> <em class="jxr_javadoccomment">    @param listener listener to be removed</em>
<a class="jxr_linenumber" name="L205" href="#L205">205</a> <em class="jxr_javadoccomment">    */</em>
<a class="jxr_linenumber" name="L206" href="#L206">206</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> removeLoggerEventListener(<strong class="jxr_keyword">final</strong> <a href="../../../org/apache/log4j/spi/LoggerEventListener.html">LoggerEventListener</a> listener) {
<a class="jxr_linenumber" name="L207" href="#L207">207</a>     <strong class="jxr_keyword">synchronized</strong> (loggerEventListeners) {
<a class="jxr_linenumber" name="L208" href="#L208">208</a>       <a href="../../../org/apache/log4j/LoggerRepositoryExImpl.html">HierarchyEventListenerProxy</a> proxy =
<a class="jxr_linenumber" name="L209" href="#L209">209</a>               (<a href="../../../org/apache/log4j/LoggerRepositoryExImpl.html">HierarchyEventListenerProxy</a>) loggerEventListeners.get(listener);
<a class="jxr_linenumber" name="L210" href="#L210">210</a>       <strong class="jxr_keyword">if</strong> (proxy == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L211" href="#L211">211</a>         LogLog.warn(
<a class="jxr_linenumber" name="L212" href="#L212">212</a>           <span class="jxr_string">"Ignoring attempt to remove a non-registered LoggerEventListener."</span>);
<a class="jxr_linenumber" name="L213" href="#L213">213</a>       } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="L214" href="#L214">214</a>         loggerEventListeners.remove(listener);
<a class="jxr_linenumber" name="L215" href="#L215">215</a>         proxy.disable();
<a class="jxr_linenumber" name="L216" href="#L216">216</a>       }
<a class="jxr_linenumber" name="L217" href="#L217">217</a>     }
<a class="jxr_linenumber" name="L218" href="#L218">218</a>   }
<a class="jxr_linenumber" name="L219" href="#L219">219</a> 
<a class="jxr_linenumber" name="L220" href="#L220">220</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L221" href="#L221">221</a> <em class="jxr_javadoccomment">     * Issue warning that there are no appenders in hierarchy.</em>
<a class="jxr_linenumber" name="L222" href="#L222">222</a> <em class="jxr_javadoccomment">     * @param cat logger, not currently used.</em>
<a class="jxr_linenumber" name="L223" href="#L223">223</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L224" href="#L224">224</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> emitNoAppenderWarning(<strong class="jxr_keyword">final</strong> Category cat) {
<a class="jxr_linenumber" name="L225" href="#L225">225</a>     repo.emitNoAppenderWarning(cat);
<a class="jxr_linenumber" name="L226" href="#L226">226</a>   }
<a class="jxr_linenumber" name="L227" href="#L227">227</a> 
<a class="jxr_linenumber" name="L228" href="#L228">228</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L229" href="#L229">229</a> <em class="jxr_javadoccomment">     Check if the named logger exists in the hierarchy. If so return</em>
<a class="jxr_linenumber" name="L230" href="#L230">230</a> <em class="jxr_javadoccomment">     its reference, otherwise returns &lt;code&gt;null&lt;/code&gt;.</em>
<a class="jxr_linenumber" name="L231" href="#L231">231</a> 
<a class="jxr_linenumber" name="L232" href="#L232">232</a> <em class="jxr_javadoccomment">     @param loggerName The name of the logger to search for.</em>
<a class="jxr_linenumber" name="L233" href="#L233">233</a> <em class="jxr_javadoccomment">     @return true if logger exists.</em>
<a class="jxr_linenumber" name="L234" href="#L234">234</a> <em class="jxr_javadoccomment">  */</em>
<a class="jxr_linenumber" name="L235" href="#L235">235</a>   <strong class="jxr_keyword">public</strong> Logger exists(<strong class="jxr_keyword">final</strong> String loggerName) {
<a class="jxr_linenumber" name="L236" href="#L236">236</a>     <strong class="jxr_keyword">return</strong> repo.exists(loggerName);
<a class="jxr_linenumber" name="L237" href="#L237">237</a>   }
<a class="jxr_linenumber" name="L238" href="#L238">238</a> 
<a class="jxr_linenumber" name="L239" href="#L239">239</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L240" href="#L240">240</a> <em class="jxr_javadoccomment">   * Return the name of this hierarchy.</em>
<a class="jxr_linenumber" name="L241" href="#L241">241</a> <em class="jxr_javadoccomment">   * @return name of hierarchy</em>
<a class="jxr_linenumber" name="L242" href="#L242">242</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="L243" href="#L243">243</a>   <strong class="jxr_keyword">public</strong> String getName() {
<a class="jxr_linenumber" name="L244" href="#L244">244</a>     <strong class="jxr_keyword">return</strong> name;
<a class="jxr_linenumber" name="L245" href="#L245">245</a>   }
<a class="jxr_linenumber" name="L246" href="#L246">246</a> 
<a class="jxr_linenumber" name="L247" href="#L247">247</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L248" href="#L248">248</a> <em class="jxr_javadoccomment">   * Set the name of this repository.</em>
<a class="jxr_linenumber" name="L249" href="#L249">249</a> <em class="jxr_javadoccomment">   *</em>
<a class="jxr_linenumber" name="L250" href="#L250">250</a> <em class="jxr_javadoccomment">   * Note that once named, a repository cannot be rerenamed.</em>
<a class="jxr_linenumber" name="L251" href="#L251">251</a> <em class="jxr_javadoccomment">   * @param repoName name of hierarchy</em>
<a class="jxr_linenumber" name="L252" href="#L252">252</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="L253" href="#L253">253</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setName(<strong class="jxr_keyword">final</strong> String repoName) {
<a class="jxr_linenumber" name="L254" href="#L254">254</a>     <strong class="jxr_keyword">if</strong> (name == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L255" href="#L255">255</a>       name = repoName;
<a class="jxr_linenumber" name="L256" href="#L256">256</a>     } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (!name.equals(repoName)) {
<a class="jxr_linenumber" name="L257" href="#L257">257</a>       <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalStateException(
<a class="jxr_linenumber" name="L258" href="#L258">258</a>         <span class="jxr_string">"Repository ["</span> + name + <span class="jxr_string">"] cannot be renamed as ["</span> + repoName + <span class="jxr_string">"]."</span>);
<a class="jxr_linenumber" name="L259" href="#L259">259</a>     }
<a class="jxr_linenumber" name="L260" href="#L260">260</a>   }
<a class="jxr_linenumber" name="L261" href="#L261">261</a> 
<a class="jxr_linenumber" name="L262" href="#L262">262</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L263" href="#L263">263</a> <em class="jxr_javadoccomment">   * {@inheritDoc}</em>
<a class="jxr_linenumber" name="L264" href="#L264">264</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="L265" href="#L265">265</a>   <strong class="jxr_keyword">public</strong> Map getProperties() {
<a class="jxr_linenumber" name="L266" href="#L266">266</a>     <strong class="jxr_keyword">return</strong> properties;
<a class="jxr_linenumber" name="L267" href="#L267">267</a>   }
<a class="jxr_linenumber" name="L268" href="#L268">268</a> 
<a class="jxr_linenumber" name="L269" href="#L269">269</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L270" href="#L270">270</a> <em class="jxr_javadoccomment">   * {@inheritDoc}</em>
<a class="jxr_linenumber" name="L271" href="#L271">271</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="L272" href="#L272">272</a>   <strong class="jxr_keyword">public</strong> String getProperty(<strong class="jxr_keyword">final</strong> String key) {
<a class="jxr_linenumber" name="L273" href="#L273">273</a>      <strong class="jxr_keyword">return</strong> (String) properties.get(key);
<a class="jxr_linenumber" name="L274" href="#L274">274</a>   }
<a class="jxr_linenumber" name="L275" href="#L275">275</a> 
<a class="jxr_linenumber" name="L276" href="#L276">276</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L277" href="#L277">277</a> <em class="jxr_javadoccomment">   * Set a property by key and value. The property will be shared by all</em>
<a class="jxr_linenumber" name="L278" href="#L278">278</a> <em class="jxr_javadoccomment">   * events in this repository.</em>
<a class="jxr_linenumber" name="L279" href="#L279">279</a> <em class="jxr_javadoccomment">   * @param key property name</em>
<a class="jxr_linenumber" name="L280" href="#L280">280</a> <em class="jxr_javadoccomment">   * @param value property value</em>
<a class="jxr_linenumber" name="L281" href="#L281">281</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="L282" href="#L282">282</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setProperty(<strong class="jxr_keyword">final</strong> String key,
<a class="jxr_linenumber" name="L283" href="#L283">283</a>                           <strong class="jxr_keyword">final</strong> String value) {
<a class="jxr_linenumber" name="L284" href="#L284">284</a>    properties.put(key, value);
<a class="jxr_linenumber" name="L285" href="#L285">285</a>   }
<a class="jxr_linenumber" name="L286" href="#L286">286</a> 
<a class="jxr_linenumber" name="L287" href="#L287">287</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L288" href="#L288">288</a> <em class="jxr_javadoccomment">     The string form of {@link #setThreshold(Level)}.</em>
<a class="jxr_linenumber" name="L289" href="#L289">289</a> <em class="jxr_javadoccomment">   @param levelStr symbolic name for level</em>
<a class="jxr_linenumber" name="L290" href="#L290">290</a> <em class="jxr_javadoccomment">  */</em>
<a class="jxr_linenumber" name="L291" href="#L291">291</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setThreshold(<strong class="jxr_keyword">final</strong> String levelStr) {
<a class="jxr_linenumber" name="L292" href="#L292">292</a>     repo.setThreshold(levelStr);
<a class="jxr_linenumber" name="L293" href="#L293">293</a>   }
<a class="jxr_linenumber" name="L294" href="#L294">294</a> 
<a class="jxr_linenumber" name="L295" href="#L295">295</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L296" href="#L296">296</a> <em class="jxr_javadoccomment">     Enable logging for logging requests with level &lt;code&gt;l&lt;/code&gt; or</em>
<a class="jxr_linenumber" name="L297" href="#L297">297</a> <em class="jxr_javadoccomment">     higher. By default all levels are enabled.</em>
<a class="jxr_linenumber" name="L298" href="#L298">298</a> 
<a class="jxr_linenumber" name="L299" href="#L299">299</a> <em class="jxr_javadoccomment">     @param l The minimum level for which logging requests are sent to</em>
<a class="jxr_linenumber" name="L300" href="#L300">300</a> <em class="jxr_javadoccomment">     their appenders.  */</em>
<a class="jxr_linenumber" name="L301" href="#L301">301</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setThreshold(<strong class="jxr_keyword">final</strong> Level l) {
<a class="jxr_linenumber" name="L302" href="#L302">302</a>     repo.setThreshold(l);
<a class="jxr_linenumber" name="L303" href="#L303">303</a>   }
<a class="jxr_linenumber" name="L304" href="#L304">304</a> 
<a class="jxr_linenumber" name="L305" href="#L305">305</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L306" href="#L306">306</a> <em class="jxr_javadoccomment">   * {@inheritDoc}</em>
<a class="jxr_linenumber" name="L307" href="#L307">307</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="L308" href="#L308">308</a>   <strong class="jxr_keyword">public</strong> <a href="../../../org/apache/log4j/plugins/PluginRegistry.html">PluginRegistry</a> getPluginRegistry() {
<a class="jxr_linenumber" name="L309" href="#L309">309</a>    <strong class="jxr_keyword">if</strong> (pluginRegistry == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L310" href="#L310">310</a>      pluginRegistry = <strong class="jxr_keyword">new</strong> <a href="../../../org/apache/log4j/plugins/PluginRegistry.html">PluginRegistry</a>(<strong class="jxr_keyword">this</strong>);
<a class="jxr_linenumber" name="L311" href="#L311">311</a>    }
<a class="jxr_linenumber" name="L312" href="#L312">312</a>    <strong class="jxr_keyword">return</strong> pluginRegistry;
<a class="jxr_linenumber" name="L313" href="#L313">313</a>   }
<a class="jxr_linenumber" name="L314" href="#L314">314</a> 
<a class="jxr_linenumber" name="L315" href="#L315">315</a> 
<a class="jxr_linenumber" name="L316" href="#L316">316</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L317" href="#L317">317</a> <em class="jxr_javadoccomment">      Requests that a appender added event be sent to any registered</em>
<a class="jxr_linenumber" name="L318" href="#L318">318</a> <em class="jxr_javadoccomment">      {@link LoggerEventListener}.</em>
<a class="jxr_linenumber" name="L319" href="#L319">319</a> <em class="jxr_javadoccomment">      @param logger The logger to which the appender was added.</em>
<a class="jxr_linenumber" name="L320" href="#L320">320</a> <em class="jxr_javadoccomment">      @param appender The appender added to the logger.</em>
<a class="jxr_linenumber" name="L321" href="#L321">321</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L322" href="#L322">322</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> fireAddAppenderEvent(<strong class="jxr_keyword">final</strong> Category logger,
<a class="jxr_linenumber" name="L323" href="#L323">323</a>                                      <strong class="jxr_keyword">final</strong> Appender appender) {
<a class="jxr_linenumber" name="L324" href="#L324">324</a>         repo.fireAddAppenderEvent(logger, appender);
<a class="jxr_linenumber" name="L325" href="#L325">325</a>     }
<a class="jxr_linenumber" name="L326" href="#L326">326</a> 
<a class="jxr_linenumber" name="L327" href="#L327">327</a> 
<a class="jxr_linenumber" name="L328" href="#L328">328</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L329" href="#L329">329</a> <em class="jxr_javadoccomment">      Requests that a appender removed event be sent to any registered</em>
<a class="jxr_linenumber" name="L330" href="#L330">330</a> <em class="jxr_javadoccomment">      {@link LoggerEventListener}.</em>
<a class="jxr_linenumber" name="L331" href="#L331">331</a> <em class="jxr_javadoccomment">      @param logger The logger from which the appender was removed.</em>
<a class="jxr_linenumber" name="L332" href="#L332">332</a> <em class="jxr_javadoccomment">      @param appender The appender removed from the logger.</em>
<a class="jxr_linenumber" name="L333" href="#L333">333</a> <em class="jxr_javadoccomment">      */</em>
<a class="jxr_linenumber" name="L334" href="#L334">334</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> fireRemoveAppenderEvent(<strong class="jxr_keyword">final</strong> Category logger,
<a class="jxr_linenumber" name="L335" href="#L335">335</a>                                         <strong class="jxr_keyword">final</strong> Appender appender) {
<a class="jxr_linenumber" name="L336" href="#L336">336</a>        <strong class="jxr_keyword">if</strong> (repo instanceof Hierarchy) {
<a class="jxr_linenumber" name="L337" href="#L337">337</a>            ((Hierarchy) repo).fireRemoveAppenderEvent(logger, appender);
<a class="jxr_linenumber" name="L338" href="#L338">338</a>        }
<a class="jxr_linenumber" name="L339" href="#L339">339</a>     }
<a class="jxr_linenumber" name="L340" href="#L340">340</a> 
<a class="jxr_linenumber" name="L341" href="#L341">341</a> 
<a class="jxr_linenumber" name="L342" href="#L342">342</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L343" href="#L343">343</a> <em class="jxr_javadoccomment">    Requests that a level changed event be sent to any registered</em>
<a class="jxr_linenumber" name="L344" href="#L344">344</a> <em class="jxr_javadoccomment">    {@link LoggerEventListener}.</em>
<a class="jxr_linenumber" name="L345" href="#L345">345</a> <em class="jxr_javadoccomment">    @param logger The logger which changed levels.</em>
<a class="jxr_linenumber" name="L346" href="#L346">346</a> <em class="jxr_javadoccomment">    */</em>
<a class="jxr_linenumber" name="L347" href="#L347">347</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> fireLevelChangedEvent(<strong class="jxr_keyword">final</strong> Logger logger) {
<a class="jxr_linenumber" name="L348" href="#L348">348</a>   }
<a class="jxr_linenumber" name="L349" href="#L349">349</a> 
<a class="jxr_linenumber" name="L350" href="#L350">350</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L351" href="#L351">351</a> <em class="jxr_javadoccomment">   *</em>
<a class="jxr_linenumber" name="L352" href="#L352">352</a> <em class="jxr_javadoccomment">   * Requests that a configuration changed event be sent to any registered</em>
<a class="jxr_linenumber" name="L353" href="#L353">353</a> <em class="jxr_javadoccomment">   * {@link LoggerRepositoryEventListener}.</em>
<a class="jxr_linenumber" name="L354" href="#L354">354</a> <em class="jxr_javadoccomment">   * </em>
<a class="jxr_linenumber" name="L355" href="#L355">355</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="L356" href="#L356">356</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> fireConfigurationChangedEvent() {
<a class="jxr_linenumber" name="L357" href="#L357">357</a>   }
<a class="jxr_linenumber" name="L358" href="#L358">358</a> 
<a class="jxr_linenumber" name="L359" href="#L359">359</a> 
<a class="jxr_linenumber" name="L360" href="#L360">360</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L361" href="#L361">361</a> <em class="jxr_javadoccomment">     Returns the current threshold.</em>
<a class="jxr_linenumber" name="L362" href="#L362">362</a> <em class="jxr_javadoccomment">     @return current threshold level</em>
<a class="jxr_linenumber" name="L363" href="#L363">363</a> 
<a class="jxr_linenumber" name="L364" href="#L364">364</a> <em class="jxr_javadoccomment">     @since 1.2 */</em>
<a class="jxr_linenumber" name="L365" href="#L365">365</a>   <strong class="jxr_keyword">public</strong> Level getThreshold() {
<a class="jxr_linenumber" name="L366" href="#L366">366</a>     <strong class="jxr_keyword">return</strong> repo.getThreshold();
<a class="jxr_linenumber" name="L367" href="#L367">367</a>   }
<a class="jxr_linenumber" name="L368" href="#L368">368</a> 
<a class="jxr_linenumber" name="L369" href="#L369">369</a> 
<a class="jxr_linenumber" name="L370" href="#L370">370</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L371" href="#L371">371</a> <em class="jxr_javadoccomment">     Return a new logger instance named as the first parameter using</em>
<a class="jxr_linenumber" name="L372" href="#L372">372</a> <em class="jxr_javadoccomment">     the default factory.</em>
<a class="jxr_linenumber" name="L373" href="#L373">373</a> 
<a class="jxr_linenumber" name="L374" href="#L374">374</a> <em class="jxr_javadoccomment">     &lt;p&gt;If a logger of that name already exists, then it will be</em>
<a class="jxr_linenumber" name="L375" href="#L375">375</a> <em class="jxr_javadoccomment">     returned.  Otherwise, a new logger will be instantiated and</em>
<a class="jxr_linenumber" name="L376" href="#L376">376</a> <em class="jxr_javadoccomment">     then linked with its existing ancestors as well as children.</em>
<a class="jxr_linenumber" name="L377" href="#L377">377</a> 
<a class="jxr_linenumber" name="L378" href="#L378">378</a> <em class="jxr_javadoccomment">     @param loggerName The name of the logger to retrieve.</em>
<a class="jxr_linenumber" name="L379" href="#L379">379</a> <em class="jxr_javadoccomment">     @return logger</em>
<a class="jxr_linenumber" name="L380" href="#L380">380</a> 
<a class="jxr_linenumber" name="L381" href="#L381">381</a> <em class="jxr_javadoccomment">  */</em>
<a class="jxr_linenumber" name="L382" href="#L382">382</a>   <strong class="jxr_keyword">public</strong> Logger getLogger(<strong class="jxr_keyword">final</strong> String loggerName) {
<a class="jxr_linenumber" name="L383" href="#L383">383</a>     <strong class="jxr_keyword">return</strong> repo.getLogger(loggerName);
<a class="jxr_linenumber" name="L384" href="#L384">384</a>   }
<a class="jxr_linenumber" name="L385" href="#L385">385</a> 
<a class="jxr_linenumber" name="L386" href="#L386">386</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L387" href="#L387">387</a> <em class="jxr_javadoccomment">      Return a new logger instance named as the first parameter using</em>
<a class="jxr_linenumber" name="L388" href="#L388">388</a> <em class="jxr_javadoccomment">      &lt;code&gt;factory&lt;/code&gt;.</em>
<a class="jxr_linenumber" name="L389" href="#L389">389</a> 
<a class="jxr_linenumber" name="L390" href="#L390">390</a> <em class="jxr_javadoccomment">      &lt;p&gt;If a logger of that name already exists, then it will be</em>
<a class="jxr_linenumber" name="L391" href="#L391">391</a> <em class="jxr_javadoccomment">      returned.  Otherwise, a new logger will be instantiated by the</em>
<a class="jxr_linenumber" name="L392" href="#L392">392</a> <em class="jxr_javadoccomment">      &lt;code&gt;factory&lt;/code&gt; parameter and linked with its existing</em>
<a class="jxr_linenumber" name="L393" href="#L393">393</a> <em class="jxr_javadoccomment">      ancestors as well as children.</em>
<a class="jxr_linenumber" name="L394" href="#L394">394</a> 
<a class="jxr_linenumber" name="L395" href="#L395">395</a> <em class="jxr_javadoccomment">      @param loggerName The name of the logger to retrieve.</em>
<a class="jxr_linenumber" name="L396" href="#L396">396</a> <em class="jxr_javadoccomment">      @param factory The factory that will make the new logger instance.</em>
<a class="jxr_linenumber" name="L397" href="#L397">397</a> <em class="jxr_javadoccomment">      @return logger</em>
<a class="jxr_linenumber" name="L398" href="#L398">398</a> 
<a class="jxr_linenumber" name="L399" href="#L399">399</a> <em class="jxr_javadoccomment">  */</em>
<a class="jxr_linenumber" name="L400" href="#L400">400</a>   <strong class="jxr_keyword">public</strong> Logger getLogger(<strong class="jxr_keyword">final</strong> String loggerName,
<a class="jxr_linenumber" name="L401" href="#L401">401</a>                           <strong class="jxr_keyword">final</strong> LoggerFactory factory) {
<a class="jxr_linenumber" name="L402" href="#L402">402</a>     <strong class="jxr_keyword">return</strong> repo.getLogger(loggerName, factory);
<a class="jxr_linenumber" name="L403" href="#L403">403</a>   }
<a class="jxr_linenumber" name="L404" href="#L404">404</a> 
<a class="jxr_linenumber" name="L405" href="#L405">405</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L406" href="#L406">406</a> <em class="jxr_javadoccomment">     Returns all the currently defined categories in this hierarchy as</em>
<a class="jxr_linenumber" name="L407" href="#L407">407</a> <em class="jxr_javadoccomment">     an {@link java.util.Enumeration Enumeration}.</em>
<a class="jxr_linenumber" name="L408" href="#L408">408</a> 
<a class="jxr_linenumber" name="L409" href="#L409">409</a> <em class="jxr_javadoccomment">     &lt;p&gt;The root logger is &lt;em&gt;not&lt;/em&gt; included in the returned</em>
<a class="jxr_linenumber" name="L410" href="#L410">410</a> <em class="jxr_javadoccomment">     {@link Enumeration}.</em>
<a class="jxr_linenumber" name="L411" href="#L411">411</a> <em class="jxr_javadoccomment">     @return enumerator of current loggers</em>
<a class="jxr_linenumber" name="L412" href="#L412">412</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="L413" href="#L413">413</a>   <strong class="jxr_keyword">public</strong> Enumeration getCurrentLoggers() {
<a class="jxr_linenumber" name="L414" href="#L414">414</a>     <strong class="jxr_keyword">return</strong> repo.getCurrentLoggers();
<a class="jxr_linenumber" name="L415" href="#L415">415</a>   }
<a class="jxr_linenumber" name="L416" href="#L416">416</a> 
<a class="jxr_linenumber" name="L417" href="#L417">417</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L418" href="#L418">418</a> <em class="jxr_javadoccomment">   * Return the the list of previously encoutered {@link ErrorItem error items}.</em>
<a class="jxr_linenumber" name="L419" href="#L419">419</a> <em class="jxr_javadoccomment">   * @return list of errors</em>
<a class="jxr_linenumber" name="L420" href="#L420">420</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="L421" href="#L421">421</a>   <strong class="jxr_keyword">public</strong> List getErrorList() {
<a class="jxr_linenumber" name="L422" href="#L422">422</a>     <strong class="jxr_keyword">return</strong> errorList;
<a class="jxr_linenumber" name="L423" href="#L423">423</a>   }
<a class="jxr_linenumber" name="L424" href="#L424">424</a> 
<a class="jxr_linenumber" name="L425" href="#L425">425</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L426" href="#L426">426</a> <em class="jxr_javadoccomment">   * Add an error item to the list of previously encountered errors.</em>
<a class="jxr_linenumber" name="L427" href="#L427">427</a> <em class="jxr_javadoccomment">   * @param errorItem error to add to list of errors.</em>
<a class="jxr_linenumber" name="L428" href="#L428">428</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="L429" href="#L429">429</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> addErrorItem(<strong class="jxr_keyword">final</strong> <a href="../../../org/apache/log4j/spi/ErrorItem.html">ErrorItem</a> errorItem) {
<a class="jxr_linenumber" name="L430" href="#L430">430</a>     getErrorList().add(errorItem);
<a class="jxr_linenumber" name="L431" href="#L431">431</a>   }
<a class="jxr_linenumber" name="L432" href="#L432">432</a> 
<a class="jxr_linenumber" name="L433" href="#L433">433</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L434" href="#L434">434</a> <em class="jxr_javadoccomment">   * Get enumerator over current loggers.</em>
<a class="jxr_linenumber" name="L435" href="#L435">435</a> <em class="jxr_javadoccomment">   * @return enumerator over current loggers</em>
<a class="jxr_linenumber" name="L436" href="#L436">436</a> <em class="jxr_javadoccomment">     @deprecated Please use {@link #getCurrentLoggers} instead.</em>
<a class="jxr_linenumber" name="L437" href="#L437">437</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="L438" href="#L438">438</a>   <strong class="jxr_keyword">public</strong> Enumeration getCurrentCategories() {
<a class="jxr_linenumber" name="L439" href="#L439">439</a>     <strong class="jxr_keyword">return</strong> repo.getCurrentCategories();
<a class="jxr_linenumber" name="L440" href="#L440">440</a>   }
<a class="jxr_linenumber" name="L441" href="#L441">441</a> 
<a class="jxr_linenumber" name="L442" href="#L442">442</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L443" href="#L443">443</a> <em class="jxr_javadoccomment">     Get the renderer map for this hierarchy.</em>
<a class="jxr_linenumber" name="L444" href="#L444">444</a> <em class="jxr_javadoccomment">   @return renderer map</em>
<a class="jxr_linenumber" name="L445" href="#L445">445</a> <em class="jxr_javadoccomment">  */</em>
<a class="jxr_linenumber" name="L446" href="#L446">446</a>   <strong class="jxr_keyword">public</strong> RendererMap getRendererMap() {
<a class="jxr_linenumber" name="L447" href="#L447">447</a>     <strong class="jxr_keyword">return</strong> rendererSupport.getRendererMap();
<a class="jxr_linenumber" name="L448" href="#L448">448</a>   }
<a class="jxr_linenumber" name="L449" href="#L449">449</a> 
<a class="jxr_linenumber" name="L450" href="#L450">450</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L451" href="#L451">451</a> <em class="jxr_javadoccomment">     Get the root of this hierarchy.</em>
<a class="jxr_linenumber" name="L452" href="#L452">452</a> 
<a class="jxr_linenumber" name="L453" href="#L453">453</a> <em class="jxr_javadoccomment">     @since 0.9.0</em>
<a class="jxr_linenumber" name="L454" href="#L454">454</a> <em class="jxr_javadoccomment">   @return root of hierarchy</em>
<a class="jxr_linenumber" name="L455" href="#L455">455</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="L456" href="#L456">456</a>   <strong class="jxr_keyword">public</strong> Logger getRootLogger() {
<a class="jxr_linenumber" name="L457" href="#L457">457</a>     <strong class="jxr_keyword">return</strong> repo.getRootLogger();
<a class="jxr_linenumber" name="L458" href="#L458">458</a>   }
<a class="jxr_linenumber" name="L459" href="#L459">459</a> 
<a class="jxr_linenumber" name="L460" href="#L460">460</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L461" href="#L461">461</a> <em class="jxr_javadoccomment">     This method will return &lt;code&gt;true&lt;/code&gt; if this repository is</em>
<a class="jxr_linenumber" name="L462" href="#L462">462</a> <em class="jxr_javadoccomment">     disabled for &lt;code&gt;level&lt;/code&gt; value passed as parameter and</em>
<a class="jxr_linenumber" name="L463" href="#L463">463</a> <em class="jxr_javadoccomment">     &lt;code&gt;false&lt;/code&gt; otherwise. See also the {@link</em>
<a class="jxr_linenumber" name="L464" href="#L464">464</a> <em class="jxr_javadoccomment">     #setThreshold(Level) threshold} method.</em>
<a class="jxr_linenumber" name="L465" href="#L465">465</a> <em class="jxr_javadoccomment">   @param level numeric value for level.</em>
<a class="jxr_linenumber" name="L466" href="#L466">466</a> <em class="jxr_javadoccomment">   @return true if disabled for specified level</em>
<a class="jxr_linenumber" name="L467" href="#L467">467</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="L468" href="#L468">468</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> isDisabled(<strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> level) {
<a class="jxr_linenumber" name="L469" href="#L469">469</a>     <strong class="jxr_keyword">return</strong> repo.isDisabled(level);
<a class="jxr_linenumber" name="L470" href="#L470">470</a>   }
<a class="jxr_linenumber" name="L471" href="#L471">471</a> 
<a class="jxr_linenumber" name="L472" href="#L472">472</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L473" href="#L473">473</a> <em class="jxr_javadoccomment">     Reset all values contained in this hierarchy instance to their</em>
<a class="jxr_linenumber" name="L474" href="#L474">474</a> <em class="jxr_javadoccomment">     default.  This removes all appenders from all categories, sets</em>
<a class="jxr_linenumber" name="L475" href="#L475">475</a> <em class="jxr_javadoccomment">     the level of all non-root categories to &lt;code&gt;null&lt;/code&gt;,</em>
<a class="jxr_linenumber" name="L476" href="#L476">476</a> <em class="jxr_javadoccomment">     sets their additivity flag to &lt;code&gt;true&lt;/code&gt; and sets the level</em>
<a class="jxr_linenumber" name="L477" href="#L477">477</a> <em class="jxr_javadoccomment">     of the root logger to DEBUG.  Moreover,</em>
<a class="jxr_linenumber" name="L478" href="#L478">478</a> <em class="jxr_javadoccomment">     message disabling is set its default "off" value.</em>
<a class="jxr_linenumber" name="L479" href="#L479">479</a> 
<a class="jxr_linenumber" name="L480" href="#L480">480</a> <em class="jxr_javadoccomment">     &lt;p&gt;Existing categories are not removed. They are just reset.</em>
<a class="jxr_linenumber" name="L481" href="#L481">481</a> 
<a class="jxr_linenumber" name="L482" href="#L482">482</a> <em class="jxr_javadoccomment">     &lt;p&gt;This method should be used sparingly and with care as it will</em>
<a class="jxr_linenumber" name="L483" href="#L483">483</a> <em class="jxr_javadoccomment">     block all logging until it is completed.&lt;/p&gt;</em>
<a class="jxr_linenumber" name="L484" href="#L484">484</a> 
<a class="jxr_linenumber" name="L485" href="#L485">485</a> <em class="jxr_javadoccomment">     @since 0.8.5 */</em>
<a class="jxr_linenumber" name="L486" href="#L486">486</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> resetConfiguration() {
<a class="jxr_linenumber" name="L487" href="#L487">487</a>     repo.resetConfiguration();
<a class="jxr_linenumber" name="L488" href="#L488">488</a>   }
<a class="jxr_linenumber" name="L489" href="#L489">489</a> 
<a class="jxr_linenumber" name="L490" href="#L490">490</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L491" href="#L491">491</a> <em class="jxr_javadoccomment">     Used by subclasses to add a renderer to the hierarchy passed as parameter.</em>
<a class="jxr_linenumber" name="L492" href="#L492">492</a> <em class="jxr_javadoccomment">   @param renderedClass class</em>
<a class="jxr_linenumber" name="L493" href="#L493">493</a> <em class="jxr_javadoccomment">   @param renderer object used to render class.</em>
<a class="jxr_linenumber" name="L494" href="#L494">494</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="L495" href="#L495">495</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setRenderer(<strong class="jxr_keyword">final</strong> Class renderedClass,
<a class="jxr_linenumber" name="L496" href="#L496">496</a>                           <strong class="jxr_keyword">final</strong> ObjectRenderer renderer) {
<a class="jxr_linenumber" name="L497" href="#L497">497</a>     rendererSupport.setRenderer(renderedClass, renderer);
<a class="jxr_linenumber" name="L498" href="#L498">498</a>   }
<a class="jxr_linenumber" name="L499" href="#L499">499</a> 
<a class="jxr_linenumber" name="L500" href="#L500">500</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L501" href="#L501">501</a> <em class="jxr_javadoccomment">   * {@inheritDoc}</em>
<a class="jxr_linenumber" name="L502" href="#L502">502</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="L503" href="#L503">503</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> isPristine() {
<a class="jxr_linenumber" name="L504" href="#L504">504</a>     <strong class="jxr_keyword">return</strong> pristine;
<a class="jxr_linenumber" name="L505" href="#L505">505</a>   }
<a class="jxr_linenumber" name="L506" href="#L506">506</a> 
<a class="jxr_linenumber" name="L507" href="#L507">507</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L508" href="#L508">508</a> <em class="jxr_javadoccomment">   * {@inheritDoc}</em>
<a class="jxr_linenumber" name="L509" href="#L509">509</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="L510" href="#L510">510</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setPristine(<strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">boolean</strong> state) {
<a class="jxr_linenumber" name="L511" href="#L511">511</a>     pristine = state;
<a class="jxr_linenumber" name="L512" href="#L512">512</a>   }
<a class="jxr_linenumber" name="L513" href="#L513">513</a> 
<a class="jxr_linenumber" name="L514" href="#L514">514</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L515" href="#L515">515</a> <em class="jxr_javadoccomment">     Shutting down a hierarchy will &lt;em&gt;safely&lt;/em&gt; close and remove</em>
<a class="jxr_linenumber" name="L516" href="#L516">516</a> <em class="jxr_javadoccomment">     all appenders in all categories including the root logger.</em>
<a class="jxr_linenumber" name="L517" href="#L517">517</a> 
<a class="jxr_linenumber" name="L518" href="#L518">518</a> <em class="jxr_javadoccomment">     &lt;p&gt;Some appenders such as org.apache.log4j.net.SocketAppender</em>
<a class="jxr_linenumber" name="L519" href="#L519">519</a> <em class="jxr_javadoccomment">     and AsyncAppender need to be closed before the</em>
<a class="jxr_linenumber" name="L520" href="#L520">520</a> <em class="jxr_javadoccomment">     application exists. Otherwise, pending logging events might be</em>
<a class="jxr_linenumber" name="L521" href="#L521">521</a> <em class="jxr_javadoccomment">     lost.</em>
<a class="jxr_linenumber" name="L522" href="#L522">522</a> 
<a class="jxr_linenumber" name="L523" href="#L523">523</a> <em class="jxr_javadoccomment">     &lt;p&gt;The &lt;code&gt;shutdown&lt;/code&gt; method is careful to close nested</em>
<a class="jxr_linenumber" name="L524" href="#L524">524</a> <em class="jxr_javadoccomment">     appenders before closing regular appenders. This is allows</em>
<a class="jxr_linenumber" name="L525" href="#L525">525</a> <em class="jxr_javadoccomment">     configurations where a regular appender is attached to a logger</em>
<a class="jxr_linenumber" name="L526" href="#L526">526</a> <em class="jxr_javadoccomment">     and again to a nested appender.</em>
<a class="jxr_linenumber" name="L527" href="#L527">527</a> 
<a class="jxr_linenumber" name="L528" href="#L528">528</a> <em class="jxr_javadoccomment">     @since 1.0 */</em>
<a class="jxr_linenumber" name="L529" href="#L529">529</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> shutdown() {
<a class="jxr_linenumber" name="L530" href="#L530">530</a>     repo.shutdown();
<a class="jxr_linenumber" name="L531" href="#L531">531</a>   }
<a class="jxr_linenumber" name="L532" href="#L532">532</a> 
<a class="jxr_linenumber" name="L533" href="#L533">533</a> 
<a class="jxr_linenumber" name="L534" href="#L534">534</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L535" href="#L535">535</a> <em class="jxr_javadoccomment">   * Return this repository's own scheduler.</em>
<a class="jxr_linenumber" name="L536" href="#L536">536</a> <em class="jxr_javadoccomment">   * The scheduler is lazily instantiated.</em>
<a class="jxr_linenumber" name="L537" href="#L537">537</a> <em class="jxr_javadoccomment">   * @return this repository's own scheduler.</em>
<a class="jxr_linenumber" name="L538" href="#L538">538</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="L539" href="#L539">539</a>   <strong class="jxr_keyword">public</strong> <a href="../../../org/apache/log4j/scheduler/Scheduler.html">Scheduler</a> getScheduler() {
<a class="jxr_linenumber" name="L540" href="#L540">540</a>     <strong class="jxr_keyword">if</strong> (scheduler == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L541" href="#L541">541</a>       scheduler = <strong class="jxr_keyword">new</strong> <a href="../../../org/apache/log4j/scheduler/Scheduler.html">Scheduler</a>();
<a class="jxr_linenumber" name="L542" href="#L542">542</a>       scheduler.setDaemon(<strong class="jxr_keyword">true</strong>);
<a class="jxr_linenumber" name="L543" href="#L543">543</a>       scheduler.start();
<a class="jxr_linenumber" name="L544" href="#L544">544</a>     }
<a class="jxr_linenumber" name="L545" href="#L545">545</a>     <strong class="jxr_keyword">return</strong> scheduler;
<a class="jxr_linenumber" name="L546" href="#L546">546</a>   }
<a class="jxr_linenumber" name="L547" href="#L547">547</a> 
<a class="jxr_linenumber" name="L548" href="#L548">548</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L549" href="#L549">549</a> <em class="jxr_javadoccomment">     * Puts object by key.</em>
<a class="jxr_linenumber" name="L550" href="#L550">550</a> <em class="jxr_javadoccomment">     * @param key key, may not be null.</em>
<a class="jxr_linenumber" name="L551" href="#L551">551</a> <em class="jxr_javadoccomment">     * @param value object to associate with key.</em>
<a class="jxr_linenumber" name="L552" href="#L552">552</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L553" href="#L553">553</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> putObject(<strong class="jxr_keyword">final</strong> String key,
<a class="jxr_linenumber" name="L554" href="#L554">554</a>                         <strong class="jxr_keyword">final</strong> Object value) {
<a class="jxr_linenumber" name="L555" href="#L555">555</a>     objectMap.put(key, value);
<a class="jxr_linenumber" name="L556" href="#L556">556</a>   }
<a class="jxr_linenumber" name="L557" href="#L557">557</a> 
<a class="jxr_linenumber" name="L558" href="#L558">558</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L559" href="#L559">559</a> <em class="jxr_javadoccomment">     * Get object by key.</em>
<a class="jxr_linenumber" name="L560" href="#L560">560</a> <em class="jxr_javadoccomment">     * @param key key, may not be null.</em>
<a class="jxr_linenumber" name="L561" href="#L561">561</a> <em class="jxr_javadoccomment">     * @return object associated with key or null.</em>
<a class="jxr_linenumber" name="L562" href="#L562">562</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L563" href="#L563">563</a>   <strong class="jxr_keyword">public</strong> Object getObject(<strong class="jxr_keyword">final</strong> String key) {
<a class="jxr_linenumber" name="L564" href="#L564">564</a>     <strong class="jxr_keyword">return</strong> objectMap.get(key);
<a class="jxr_linenumber" name="L565" href="#L565">565</a>   }
<a class="jxr_linenumber" name="L566" href="#L566">566</a> 
<a class="jxr_linenumber" name="L567" href="#L567">567</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L568" href="#L568">568</a> <em class="jxr_javadoccomment">     * Set logger factory.</em>
<a class="jxr_linenumber" name="L569" href="#L569">569</a> <em class="jxr_javadoccomment">     * @param factory logger factory.</em>
<a class="jxr_linenumber" name="L570" href="#L570">570</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L571" href="#L571">571</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setLoggerFactory(<strong class="jxr_keyword">final</strong> LoggerFactory factory) {
<a class="jxr_linenumber" name="L572" href="#L572">572</a>     <strong class="jxr_keyword">if</strong> (factory == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L573" href="#L573">573</a>       <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> NullPointerException();
<a class="jxr_linenumber" name="L574" href="#L574">574</a>     }
<a class="jxr_linenumber" name="L575" href="#L575">575</a>     <strong class="jxr_keyword">this</strong>.loggerFactory = factory;
<a class="jxr_linenumber" name="L576" href="#L576">576</a>   }
<a class="jxr_linenumber" name="L577" href="#L577">577</a> 
<a class="jxr_linenumber" name="L578" href="#L578">578</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L579" href="#L579">579</a> <em class="jxr_javadoccomment">     * Get logger factory.</em>
<a class="jxr_linenumber" name="L580" href="#L580">580</a> <em class="jxr_javadoccomment">     * @return logger factory.</em>
<a class="jxr_linenumber" name="L581" href="#L581">581</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L582" href="#L582">582</a>   <strong class="jxr_keyword">public</strong> LoggerFactory getLoggerFactory() {
<a class="jxr_linenumber" name="L583" href="#L583">583</a>     <strong class="jxr_keyword">return</strong> loggerFactory;
<a class="jxr_linenumber" name="L584" href="#L584">584</a>   }
<a class="jxr_linenumber" name="L585" href="#L585">585</a> 
<a class="jxr_linenumber" name="L586" href="#L586">586</a>     <em class="jxr_javadoccomment">/** {@inheritDoc} */</em>
<a class="jxr_linenumber" name="L587" href="#L587">587</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> parseUnrecognizedElement(
<a class="jxr_linenumber" name="L588" href="#L588">588</a>             <strong class="jxr_keyword">final</strong> Element element,
<a class="jxr_linenumber" name="L589" href="#L589">589</a>             <strong class="jxr_keyword">final</strong> Properties props) <strong class="jxr_keyword">throws</strong> Exception {
<a class="jxr_linenumber" name="L590" href="#L590">590</a>         <strong class="jxr_keyword">if</strong> (<span class="jxr_string">"plugin"</span>.equals(element.getNodeName())) {
<a class="jxr_linenumber" name="L591" href="#L591">591</a>             Object instance =
<a class="jxr_linenumber" name="L592" href="#L592">592</a>                     DOMConfigurator.parseElement(element, props, Plugin.<strong class="jxr_keyword">class</strong>);
<a class="jxr_linenumber" name="L593" href="#L593">593</a>             <strong class="jxr_keyword">if</strong> (instance instanceof Plugin) {
<a class="jxr_linenumber" name="L594" href="#L594">594</a>                 <a href="../../../org/apache/log4j/plugins/Plugin.html">Plugin</a> plugin = (Plugin) instance;
<a class="jxr_linenumber" name="L595" href="#L595">595</a>                 String pluginName = DOMConfigurator.subst(element.getAttribute(<span class="jxr_string">"name"</span>), props);
<a class="jxr_linenumber" name="L596" href="#L596">596</a>                 <strong class="jxr_keyword">if</strong> (pluginName.length() &gt; 0) {
<a class="jxr_linenumber" name="L597" href="#L597">597</a>                     plugin.setName(pluginName);
<a class="jxr_linenumber" name="L598" href="#L598">598</a>                 }
<a class="jxr_linenumber" name="L599" href="#L599">599</a>                 getPluginRegistry().addPlugin(plugin);
<a class="jxr_linenumber" name="L600" href="#L600">600</a>                 plugin.setLoggerRepository(<strong class="jxr_keyword">this</strong>);
<a class="jxr_linenumber" name="L601" href="#L601">601</a> 
<a class="jxr_linenumber" name="L602" href="#L602">602</a>                 LogLog.debug(<span class="jxr_string">"Pushing plugin on to the object stack."</span>);
<a class="jxr_linenumber" name="L603" href="#L603">603</a>                 plugin.activateOptions();
<a class="jxr_linenumber" name="L604" href="#L604">604</a>                 <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="L605" href="#L605">605</a>             }
<a class="jxr_linenumber" name="L606" href="#L606">606</a>         }
<a class="jxr_linenumber" name="L607" href="#L607">607</a>         <strong class="jxr_keyword">return</strong> false;
<a class="jxr_linenumber" name="L608" href="#L608">608</a>     }
<a class="jxr_linenumber" name="L609" href="#L609">609</a> 
<a class="jxr_linenumber" name="L610" href="#L610">610</a> 
<a class="jxr_linenumber" name="L611" href="#L611">611</a> 
<a class="jxr_linenumber" name="L612" href="#L612">612</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L613" href="#L613">613</a> <em class="jxr_javadoccomment">     * Implementation of RendererSupportImpl if not</em>
<a class="jxr_linenumber" name="L614" href="#L614">614</a> <em class="jxr_javadoccomment">     * provided by LoggerRepository.</em>
<a class="jxr_linenumber" name="L615" href="#L615">615</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L616" href="#L616">616</a>    <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">class</strong> <a href="../../../org/apache/log4j/LoggerRepositoryExImpl.html">RendererSupportImpl</a> <strong class="jxr_keyword">implements</strong> RendererSupport {
<a class="jxr_linenumber" name="L617" href="#L617">617</a>         <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L618" href="#L618">618</a> <em class="jxr_javadoccomment">         * Renderer map.</em>
<a class="jxr_linenumber" name="L619" href="#L619">619</a> <em class="jxr_javadoccomment">         */</em>
<a class="jxr_linenumber" name="L620" href="#L620">620</a>        <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> RendererMap renderers = <strong class="jxr_keyword">new</strong> RendererMap();
<a class="jxr_linenumber" name="L621" href="#L621">621</a> 
<a class="jxr_linenumber" name="L622" href="#L622">622</a>         <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L623" href="#L623">623</a> <em class="jxr_javadoccomment">         * Create new instance.</em>
<a class="jxr_linenumber" name="L624" href="#L624">624</a> <em class="jxr_javadoccomment">         */</em>
<a class="jxr_linenumber" name="L625" href="#L625">625</a>        <strong class="jxr_keyword">public</strong> <a href="../../../org/apache/log4j/LoggerRepositoryExImpl.html">RendererSupportImpl</a>() {
<a class="jxr_linenumber" name="L626" href="#L626">626</a>            <strong class="jxr_keyword">super</strong>();
<a class="jxr_linenumber" name="L627" href="#L627">627</a>        }
<a class="jxr_linenumber" name="L628" href="#L628">628</a> 
<a class="jxr_linenumber" name="L629" href="#L629">629</a>         <em class="jxr_javadoccomment">/** {@inheritDoc} */</em>
<a class="jxr_linenumber" name="L630" href="#L630">630</a>        <strong class="jxr_keyword">public</strong> RendererMap getRendererMap() {
<a class="jxr_linenumber" name="L631" href="#L631">631</a>            <strong class="jxr_keyword">return</strong> renderers;
<a class="jxr_linenumber" name="L632" href="#L632">632</a>        }
<a class="jxr_linenumber" name="L633" href="#L633">633</a> 
<a class="jxr_linenumber" name="L634" href="#L634">634</a>         <em class="jxr_javadoccomment">/** {@inheritDoc} */</em>
<a class="jxr_linenumber" name="L635" href="#L635">635</a>        <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setRenderer(<strong class="jxr_keyword">final</strong> Class renderedClass,
<a class="jxr_linenumber" name="L636" href="#L636">636</a>                                <strong class="jxr_keyword">final</strong> ObjectRenderer renderer) {
<a class="jxr_linenumber" name="L637" href="#L637">637</a>            renderers.put(renderedClass, renderer);
<a class="jxr_linenumber" name="L638" href="#L638">638</a>        }
<a class="jxr_linenumber" name="L639" href="#L639">639</a>    }
<a class="jxr_linenumber" name="L640" href="#L640">640</a> 
<a class="jxr_linenumber" name="L641" href="#L641">641</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L642" href="#L642">642</a> <em class="jxr_javadoccomment">     * Proxy that implements HierarchyEventListener</em>
<a class="jxr_linenumber" name="L643" href="#L643">643</a> <em class="jxr_javadoccomment">     * and delegates to LoggerEventListener.</em>
<a class="jxr_linenumber" name="L644" href="#L644">644</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L645" href="#L645">645</a>    <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">class</strong> <a href="../../../org/apache/log4j/LoggerRepositoryExImpl.html">HierarchyEventListenerProxy</a>
<a class="jxr_linenumber" name="L646" href="#L646">646</a>         <strong class="jxr_keyword">implements</strong> HierarchyEventListener {
<a class="jxr_linenumber" name="L647" href="#L647">647</a>         <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L648" href="#L648">648</a> <em class="jxr_javadoccomment">         * Wrapper listener.</em>
<a class="jxr_linenumber" name="L649" href="#L649">649</a> <em class="jxr_javadoccomment">         */</em>
<a class="jxr_linenumber" name="L650" href="#L650">650</a>        <strong class="jxr_keyword">private</strong> <a href="../../../org/apache/log4j/spi/LoggerEventListener.html">LoggerEventListener</a> listener;
<a class="jxr_linenumber" name="L651" href="#L651">651</a> 
<a class="jxr_linenumber" name="L652" href="#L652">652</a>         <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L653" href="#L653">653</a> <em class="jxr_javadoccomment">         * Creates new instance.</em>
<a class="jxr_linenumber" name="L654" href="#L654">654</a> <em class="jxr_javadoccomment">         * @param l listener</em>
<a class="jxr_linenumber" name="L655" href="#L655">655</a> <em class="jxr_javadoccomment">         */</em>
<a class="jxr_linenumber" name="L656" href="#L656">656</a>        <strong class="jxr_keyword">public</strong> <a href="../../../org/apache/log4j/LoggerRepositoryExImpl.html">HierarchyEventListenerProxy</a>(<strong class="jxr_keyword">final</strong> <a href="../../../org/apache/log4j/spi/LoggerEventListener.html">LoggerEventListener</a> l) {
<a class="jxr_linenumber" name="L657" href="#L657">657</a>            <strong class="jxr_keyword">super</strong>();
<a class="jxr_linenumber" name="L658" href="#L658">658</a>            <strong class="jxr_keyword">if</strong> (l == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L659" href="#L659">659</a>                <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> NullPointerException(<span class="jxr_string">"l"</span>);
<a class="jxr_linenumber" name="L660" href="#L660">660</a>            }
<a class="jxr_linenumber" name="L661" href="#L661">661</a>            listener = l;
<a class="jxr_linenumber" name="L662" href="#L662">662</a>        }
<a class="jxr_linenumber" name="L663" href="#L663">663</a> 
<a class="jxr_linenumber" name="L664" href="#L664">664</a>         <em class="jxr_javadoccomment">/** {@inheritDoc} */</em>
<a class="jxr_linenumber" name="L665" href="#L665">665</a>        <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> addAppenderEvent(<strong class="jxr_keyword">final</strong> Category cat,
<a class="jxr_linenumber" name="L666" href="#L666">666</a>                                     <strong class="jxr_keyword">final</strong> Appender appender) {
<a class="jxr_linenumber" name="L667" href="#L667">667</a>            <strong class="jxr_keyword">if</strong> (isEnabled() &amp;&amp; cat instanceof Logger) {
<a class="jxr_linenumber" name="L668" href="#L668">668</a>                 listener.appenderAddedEvent((Logger) cat, appender);
<a class="jxr_linenumber" name="L669" href="#L669">669</a>            }
<a class="jxr_linenumber" name="L670" href="#L670">670</a>        }
<a class="jxr_linenumber" name="L671" href="#L671">671</a> 
<a class="jxr_linenumber" name="L672" href="#L672">672</a>         <em class="jxr_javadoccomment">/** {@inheritDoc} */</em>
<a class="jxr_linenumber" name="L673" href="#L673">673</a>        <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> removeAppenderEvent(<strong class="jxr_keyword">final</strong> Category cat,
<a class="jxr_linenumber" name="L674" href="#L674">674</a>                                     <strong class="jxr_keyword">final</strong> Appender appender) {
<a class="jxr_linenumber" name="L675" href="#L675">675</a>            <strong class="jxr_keyword">if</strong> (isEnabled() &amp;&amp; cat instanceof Logger) {
<a class="jxr_linenumber" name="L676" href="#L676">676</a>                 listener.appenderRemovedEvent((Logger) cat, appender);
<a class="jxr_linenumber" name="L677" href="#L677">677</a>            }
<a class="jxr_linenumber" name="L678" href="#L678">678</a>        }
<a class="jxr_linenumber" name="L679" href="#L679">679</a> 
<a class="jxr_linenumber" name="L680" href="#L680">680</a>         <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L681" href="#L681">681</a> <em class="jxr_javadoccomment">         * Disable forwarding of notifications to</em>
<a class="jxr_linenumber" name="L682" href="#L682">682</a> <em class="jxr_javadoccomment">         * simulate removal of listener.</em>
<a class="jxr_linenumber" name="L683" href="#L683">683</a> <em class="jxr_javadoccomment">         */</em>
<a class="jxr_linenumber" name="L684" href="#L684">684</a>        <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">synchronized</strong> <strong class="jxr_keyword">void</strong> disable() {
<a class="jxr_linenumber" name="L685" href="#L685">685</a>            listener = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L686" href="#L686">686</a>        }
<a class="jxr_linenumber" name="L687" href="#L687">687</a> 
<a class="jxr_linenumber" name="L688" href="#L688">688</a>         <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L689" href="#L689">689</a> <em class="jxr_javadoccomment">         * Gets whether proxy is enabled.</em>
<a class="jxr_linenumber" name="L690" href="#L690">690</a> <em class="jxr_javadoccomment">         * @return true if proxy is enabled.</em>
<a class="jxr_linenumber" name="L691" href="#L691">691</a> <em class="jxr_javadoccomment">         */</em>
<a class="jxr_linenumber" name="L692" href="#L692">692</a>        <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">synchronized</strong> <strong class="jxr_keyword">boolean</strong> isEnabled() {
<a class="jxr_linenumber" name="L693" href="#L693">693</a>            <strong class="jxr_keyword">return</strong> listener != <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L694" href="#L694">694</a>        }
<a class="jxr_linenumber" name="L695" href="#L695">695</a>    }
<a class="jxr_linenumber" name="L696" href="#L696">696</a> 
<a class="jxr_linenumber" name="L697" href="#L697">697</a> }
</pre>
<hr/>
<div id="footer">Copyright &#169; 2002&#x2013;2018 <a href="https://www.apache.org">Apache Software Foundation</a>. All rights reserved.</div>
</body>
</html>
