<!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=ISO-8859-1" />
<title>Hierarchy xref</title>
<link type="text/css" rel="stylesheet" href="../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../apidocs/org/apache/log4j/Hierarchy.html">View Javadoc</a></div><pre>

<a name="1" href="#1">1</a>   <em class="jxr_comment">/*</em>
<a name="2" href="#2">2</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one or more</em>
<a name="3" href="#3">3</a>   <em class="jxr_comment"> * contributor license agreements.  See the NOTICE file distributed with</em>
<a name="4" href="#4">4</a>   <em class="jxr_comment"> * this work for additional information regarding copyright ownership.</em>
<a name="5" href="#5">5</a>   <em class="jxr_comment"> * The ASF licenses this file to You under the Apache License, Version 2.0</em>
<a name="6" href="#6">6</a>   <em class="jxr_comment"> * (the "License"); you may not use this file except in compliance with</em>
<a name="7" href="#7">7</a>   <em class="jxr_comment"> * the License.  You may obtain a copy of the License at</em>
<a name="8" href="#8">8</a>   <em class="jxr_comment"> * </em>
<a name="9" href="#9">9</a>   <em class="jxr_comment"> *      <a href="http://www.apache.org/licenses/LICENSE-2.0" target="alexandria_uri">http://www.apache.org/licenses/LICENSE-2.0</a></em>
<a name="10" href="#10">10</a>  <em class="jxr_comment"> * </em>
<a name="11" href="#11">11</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing, software</em>
<a name="12" href="#12">12</a>  <em class="jxr_comment"> * distributed under the License is distributed on an "AS IS" BASIS,</em>
<a name="13" href="#13">13</a>  <em class="jxr_comment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</em>
<a name="14" href="#14">14</a>  <em class="jxr_comment"> * See the License for the specific language governing permissions and</em>
<a name="15" href="#15">15</a>  <em class="jxr_comment"> * limitations under the License.</em>
<a name="16" href="#16">16</a>  <em class="jxr_comment"> */</em>
<a name="17" href="#17">17</a>  
<a name="18" href="#18">18</a>  <em class="jxr_comment">// WARNING This class MUST not have references to the Category or</em>
<a name="19" href="#19">19</a>  <em class="jxr_comment">// WARNING RootCategory classes in its static initiliazation neither</em>
<a name="20" href="#20">20</a>  <em class="jxr_comment">// WARNING directly nor indirectly.</em>
<a name="21" href="#21">21</a>  
<a name="22" href="#22">22</a>  <em class="jxr_comment">// Contributors:</em>
<a name="23" href="#23">23</a>  <em class="jxr_comment">//                Luke Blanshard &lt;luke@quiq.com&gt;</em>
<a name="24" href="#24">24</a>  <em class="jxr_comment">//                Mario Schomburg - IBM Global Services/Germany</em>
<a name="25" href="#25">25</a>  <em class="jxr_comment">//                Anders Kristensen</em>
<a name="26" href="#26">26</a>  <em class="jxr_comment">//                Igor Poteryaev</em>
<a name="27" href="#27">27</a>  
<a name="28" href="#28">28</a>  <strong class="jxr_keyword">package</strong> org.apache.log4j;
<a name="29" href="#29">29</a>  
<a name="30" href="#30">30</a>  
<a name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> java.util.Hashtable;
<a name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> java.util.Enumeration;
<a name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> java.util.Vector;
<a name="34" href="#34">34</a>  
<a name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.spi.LoggerFactory;
<a name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.spi.HierarchyEventListener;
<a name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.spi.LoggerRepository;
<a name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.spi.RendererSupport;
<a name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.or.RendererMap;
<a name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.or.ObjectRenderer;
<a name="41" href="#41">41</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.helpers.LogLog;
<a name="42" href="#42">42</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.spi.ThrowableRendererSupport;
<a name="43" href="#43">43</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.spi.ThrowableRenderer;
<a name="44" href="#44">44</a>  
<a name="45" href="#45">45</a>  <em class="jxr_javadoccomment">/**</em>
<a name="46" href="#46">46</a>  <em class="jxr_javadoccomment">   This class is specialized in retrieving loggers by name and also</em>
<a name="47" href="#47">47</a>  <em class="jxr_javadoccomment">   maintaining the logger hierarchy.</em>
<a name="48" href="#48">48</a>  
<a name="49" href="#49">49</a>  <em class="jxr_javadoccomment">   &lt;p&gt;&lt;em&gt;The casual user does not have to deal with this class</em>
<a name="50" href="#50">50</a>  <em class="jxr_javadoccomment">   directly.&lt;/em&gt;</em>
<a name="51" href="#51">51</a>  
<a name="52" href="#52">52</a>  <em class="jxr_javadoccomment">   &lt;p&gt;The structure of the logger hierarchy is maintained by the</em>
<a name="53" href="#53">53</a>  <em class="jxr_javadoccomment">   {@link #getLogger} method. The hierarchy is such that children link</em>
<a name="54" href="#54">54</a>  <em class="jxr_javadoccomment">   to their parent but parents do not have any pointers to their</em>
<a name="55" href="#55">55</a>  <em class="jxr_javadoccomment">   children. Moreover, loggers can be instantiated in any order, in</em>
<a name="56" href="#56">56</a>  <em class="jxr_javadoccomment">   particular descendant before ancestor.</em>
<a name="57" href="#57">57</a>  
<a name="58" href="#58">58</a>  <em class="jxr_javadoccomment">   &lt;p&gt;In case a descendant is created before a particular ancestor,</em>
<a name="59" href="#59">59</a>  <em class="jxr_javadoccomment">   then it creates a provision node for the ancestor and adds itself</em>
<a name="60" href="#60">60</a>  <em class="jxr_javadoccomment">   to the provision node. Other descendants of the same ancestor add</em>
<a name="61" href="#61">61</a>  <em class="jxr_javadoccomment">   themselves to the previously created provision node.</em>
<a name="62" href="#62">62</a>  
<a name="63" href="#63">63</a>  <em class="jxr_javadoccomment">   @author Ceki G&amp;uuml;lc&amp;uuml;</em>
<a name="64" href="#64">64</a>  
<a name="65" href="#65">65</a>  <em class="jxr_javadoccomment">*/</em>
<a name="66" href="#66">66</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../org/apache/log4j/Hierarchy.html">Hierarchy</a> implements LoggerRepository, RendererSupport, <a href="../../../org/apache/log4j/spi/ThrowableRendererSupport.html">ThrowableRendererSupport</a> {
<a name="67" href="#67">67</a>  
<a name="68" href="#68">68</a>    <strong class="jxr_keyword">private</strong> <a href="../../../org/apache/log4j/spi/LoggerFactory.html">LoggerFactory</a> defaultFactory;
<a name="69" href="#69">69</a>    <strong class="jxr_keyword">private</strong> Vector listeners;
<a name="70" href="#70">70</a>  
<a name="71" href="#71">71</a>    Hashtable ht;
<a name="72" href="#72">72</a>    <a href="../../../org/apache/log4j/Logger.html">Logger</a> root;
<a name="73" href="#73">73</a>    <a href="../../../org/apache/log4j/or/RendererMap.html">RendererMap</a> rendererMap;
<a name="74" href="#74">74</a>  
<a name="75" href="#75">75</a>    <strong class="jxr_keyword">int</strong> thresholdInt;
<a name="76" href="#76">76</a>    <a href="../../../org/apache/log4j/Level.html">Level</a> threshold;
<a name="77" href="#77">77</a>  
<a name="78" href="#78">78</a>    <strong class="jxr_keyword">boolean</strong> emittedNoAppenderWarning = false;
<a name="79" href="#79">79</a>    <strong class="jxr_keyword">boolean</strong> emittedNoResourceBundleWarning = false;
<a name="80" href="#80">80</a>  
<a name="81" href="#81">81</a>    <strong class="jxr_keyword">private</strong> <a href="../../../org/apache/log4j/spi/ThrowableRenderer.html">ThrowableRenderer</a> throwableRenderer = <strong class="jxr_keyword">null</strong>;
<a name="82" href="#82">82</a>  
<a name="83" href="#83">83</a>    <em class="jxr_javadoccomment">/**</em>
<a name="84" href="#84">84</a>  <em class="jxr_javadoccomment">     Create a new logger hierarchy.</em>
<a name="85" href="#85">85</a>  
<a name="86" href="#86">86</a>  <em class="jxr_javadoccomment">     @param root The root of the new hierarchy.</em>
<a name="87" href="#87">87</a>  
<a name="88" href="#88">88</a>  <em class="jxr_javadoccomment">   */</em>
<a name="89" href="#89">89</a>    <strong class="jxr_keyword">public</strong>
<a name="90" href="#90">90</a>    <a href="../../../org/apache/log4j/Hierarchy.html">Hierarchy</a>(<a href="../../../org/apache/log4j/Logger.html">Logger</a> root) {
<a name="91" href="#91">91</a>      ht = <strong class="jxr_keyword">new</strong> Hashtable();
<a name="92" href="#92">92</a>      listeners = <strong class="jxr_keyword">new</strong> Vector(1);
<a name="93" href="#93">93</a>      <strong class="jxr_keyword">this</strong>.root = root;
<a name="94" href="#94">94</a>      <em class="jxr_comment">// Enable all level levels by default.</em>
<a name="95" href="#95">95</a>      setThreshold(Level.ALL);
<a name="96" href="#96">96</a>      <strong class="jxr_keyword">this</strong>.root.setHierarchy(<strong class="jxr_keyword">this</strong>);
<a name="97" href="#97">97</a>      rendererMap = <strong class="jxr_keyword">new</strong> <a href="../../../org/apache/log4j/or/RendererMap.html">RendererMap</a>();
<a name="98" href="#98">98</a>      defaultFactory = <strong class="jxr_keyword">new</strong> <a href="../../../org/apache/log4j/DefaultCategoryFactory.html">DefaultCategoryFactory</a>();
<a name="99" href="#99">99</a>    }
<a name="100" href="#100">100</a> 
<a name="101" href="#101">101</a>   <em class="jxr_javadoccomment">/**</em>
<a name="102" href="#102">102</a> <em class="jxr_javadoccomment">     Add an object renderer for a specific class.</em>
<a name="103" href="#103">103</a> <em class="jxr_javadoccomment">   */</em>
<a name="104" href="#104">104</a>   <strong class="jxr_keyword">public</strong>
<a name="105" href="#105">105</a>   <strong class="jxr_keyword">void</strong> addRenderer(Class classToRender, <a href="../../../org/apache/log4j/or/ObjectRenderer.html">ObjectRenderer</a> or) {
<a name="106" href="#106">106</a>     rendererMap.put(classToRender, or);
<a name="107" href="#107">107</a>   }
<a name="108" href="#108">108</a> 
<a name="109" href="#109">109</a>   <strong class="jxr_keyword">public</strong>
<a name="110" href="#110">110</a>   <strong class="jxr_keyword">void</strong> addHierarchyEventListener(<a href="../../../org/apache/log4j/spi/HierarchyEventListener.html">HierarchyEventListener</a> listener) {
<a name="111" href="#111">111</a>     <strong class="jxr_keyword">if</strong>(listeners.contains(listener)) {
<a name="112" href="#112">112</a>       LogLog.warn(<span class="jxr_string">"Ignoring attempt to add an existent listener."</span>);
<a name="113" href="#113">113</a>     } <strong class="jxr_keyword">else</strong> {
<a name="114" href="#114">114</a>       listeners.addElement(listener);
<a name="115" href="#115">115</a>     }
<a name="116" href="#116">116</a>   }
<a name="117" href="#117">117</a> 
<a name="118" href="#118">118</a>   <em class="jxr_javadoccomment">/**</em>
<a name="119" href="#119">119</a> <em class="jxr_javadoccomment">     This call will clear all logger definitions from the internal</em>
<a name="120" href="#120">120</a> <em class="jxr_javadoccomment">     hashtable. Invoking this method will irrevocably mess up the</em>
<a name="121" href="#121">121</a> <em class="jxr_javadoccomment">     logger hierarchy.</em>
<a name="122" href="#122">122</a> 
<a name="123" href="#123">123</a> <em class="jxr_javadoccomment">     &lt;p&gt;You should &lt;em&gt;really&lt;/em&gt; know what you are doing before</em>
<a name="124" href="#124">124</a> <em class="jxr_javadoccomment">     invoking this method.</em>
<a name="125" href="#125">125</a> 
<a name="126" href="#126">126</a> <em class="jxr_javadoccomment">     @since 0.9.0 */</em>
<a name="127" href="#127">127</a>   <strong class="jxr_keyword">public</strong>
<a name="128" href="#128">128</a>   <strong class="jxr_keyword">void</strong> clear() {
<a name="129" href="#129">129</a>     <em class="jxr_comment">//System.out.println("\n\nAbout to clear internal hash table.");</em>
<a name="130" href="#130">130</a>     ht.clear();
<a name="131" href="#131">131</a>   }
<a name="132" href="#132">132</a> 
<a name="133" href="#133">133</a>   <strong class="jxr_keyword">public</strong>
<a name="134" href="#134">134</a>   <strong class="jxr_keyword">void</strong> emitNoAppenderWarning(<a href="../../../org/apache/log4j/Category.html">Category</a> cat) {
<a name="135" href="#135">135</a>     <em class="jxr_comment">// No appenders in hierarchy, warn user only once.</em>
<a name="136" href="#136">136</a>     <strong class="jxr_keyword">if</strong>(!<strong class="jxr_keyword">this</strong>.emittedNoAppenderWarning) {
<a name="137" href="#137">137</a>       LogLog.warn(<span class="jxr_string">"No appenders could be found for logger ("</span> +
<a name="138" href="#138">138</a> 		   cat.getName() + <span class="jxr_string">")."</span>);
<a name="139" href="#139">139</a>       LogLog.warn(<span class="jxr_string">"Please initialize the log4j system properly."</span>);
<a name="140" href="#140">140</a>       LogLog.warn(<span class="jxr_string">"See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info."</span>);
<a name="141" href="#141">141</a>       <strong class="jxr_keyword">this</strong>.emittedNoAppenderWarning = <strong class="jxr_keyword">true</strong>;
<a name="142" href="#142">142</a>     }
<a name="143" href="#143">143</a>   }
<a name="144" href="#144">144</a> 
<a name="145" href="#145">145</a>   <em class="jxr_javadoccomment">/**</em>
<a name="146" href="#146">146</a> <em class="jxr_javadoccomment">     Check if the named logger exists in the hierarchy. If so return</em>
<a name="147" href="#147">147</a> <em class="jxr_javadoccomment">     its reference, otherwise returns &lt;code&gt;null&lt;/code&gt;.</em>
<a name="148" href="#148">148</a> 
<a name="149" href="#149">149</a> <em class="jxr_javadoccomment">     @param name The name of the logger to search for.</em>
<a name="150" href="#150">150</a> 
<a name="151" href="#151">151</a> <em class="jxr_javadoccomment">  */</em>
<a name="152" href="#152">152</a>   <strong class="jxr_keyword">public</strong>
<a name="153" href="#153">153</a>   <a href="../../../org/apache/log4j/Logger.html">Logger</a> exists(String name) {
<a name="154" href="#154">154</a>     Object o = ht.get(<strong class="jxr_keyword">new</strong> <a href="../../../org/apache/log4j/CategoryKey.html">CategoryKey</a>(name));
<a name="155" href="#155">155</a>     <strong class="jxr_keyword">if</strong>(o instanceof <a href="../../../org/apache/log4j/Logger.html">Logger</a>) {
<a name="156" href="#156">156</a>       <strong class="jxr_keyword">return</strong> (Logger) o;
<a name="157" href="#157">157</a>     } <strong class="jxr_keyword">else</strong> {
<a name="158" href="#158">158</a>       <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a name="159" href="#159">159</a>     }
<a name="160" href="#160">160</a>   }
<a name="161" href="#161">161</a> 
<a name="162" href="#162">162</a>   <em class="jxr_javadoccomment">/**</em>
<a name="163" href="#163">163</a> <em class="jxr_javadoccomment">     The string form of {@link #setThreshold(Level)}.</em>
<a name="164" href="#164">164</a> <em class="jxr_javadoccomment">  */</em>
<a name="165" href="#165">165</a>   <strong class="jxr_keyword">public</strong>
<a name="166" href="#166">166</a>   <strong class="jxr_keyword">void</strong> setThreshold(String levelStr) {
<a name="167" href="#167">167</a>     <a href="../../../org/apache/log4j/Level.html">Level</a> l = (Level) Level.toLevel(levelStr, <strong class="jxr_keyword">null</strong>);
<a name="168" href="#168">168</a>     <strong class="jxr_keyword">if</strong>(l != <strong class="jxr_keyword">null</strong>) {
<a name="169" href="#169">169</a>       setThreshold(l);
<a name="170" href="#170">170</a>     } <strong class="jxr_keyword">else</strong> {
<a name="171" href="#171">171</a>       LogLog.warn(<span class="jxr_string">"Could not convert ["</span>+levelStr+<span class="jxr_string">"] to Level."</span>);
<a name="172" href="#172">172</a>     }
<a name="173" href="#173">173</a>   }
<a name="174" href="#174">174</a> 
<a name="175" href="#175">175</a> 
<a name="176" href="#176">176</a>   <em class="jxr_javadoccomment">/**</em>
<a name="177" href="#177">177</a> <em class="jxr_javadoccomment">     Enable logging for logging requests with level &lt;code&gt;l&lt;/code&gt; or</em>
<a name="178" href="#178">178</a> <em class="jxr_javadoccomment">     higher. By default all levels are enabled.</em>
<a name="179" href="#179">179</a> 
<a name="180" href="#180">180</a> <em class="jxr_javadoccomment">     @param l The minimum level for which logging requests are sent to</em>
<a name="181" href="#181">181</a> <em class="jxr_javadoccomment">     their appenders.  */</em>
<a name="182" href="#182">182</a>   <strong class="jxr_keyword">public</strong>
<a name="183" href="#183">183</a>   <strong class="jxr_keyword">void</strong> setThreshold(<a href="../../../org/apache/log4j/Level.html">Level</a> l) {
<a name="184" href="#184">184</a>     <strong class="jxr_keyword">if</strong>(l != <strong class="jxr_keyword">null</strong>) {
<a name="185" href="#185">185</a>       thresholdInt = l.level;
<a name="186" href="#186">186</a>       threshold = l;
<a name="187" href="#187">187</a>     }
<a name="188" href="#188">188</a>   }
<a name="189" href="#189">189</a> 
<a name="190" href="#190">190</a>   <strong class="jxr_keyword">public</strong>
<a name="191" href="#191">191</a>   <strong class="jxr_keyword">void</strong> fireAddAppenderEvent(<a href="../../../org/apache/log4j/Category.html">Category</a> logger, <a href="../../../org/apache/log4j/Appender.html">Appender</a> appender) {
<a name="192" href="#192">192</a>     <strong class="jxr_keyword">if</strong>(listeners != <strong class="jxr_keyword">null</strong>) {
<a name="193" href="#193">193</a>       <strong class="jxr_keyword">int</strong> size = listeners.size();
<a name="194" href="#194">194</a>       <a href="../../../org/apache/log4j/spi/HierarchyEventListener.html">HierarchyEventListener</a> listener;
<a name="195" href="#195">195</a>       <strong class="jxr_keyword">for</strong>(<strong class="jxr_keyword">int</strong> i = 0; i &lt; size; i++) {
<a name="196" href="#196">196</a> 	listener = (HierarchyEventListener) listeners.elementAt(i);
<a name="197" href="#197">197</a> 	listener.addAppenderEvent(logger, appender);
<a name="198" href="#198">198</a>       }
<a name="199" href="#199">199</a>     }
<a name="200" href="#200">200</a>   }
<a name="201" href="#201">201</a> 
<a name="202" href="#202">202</a>   <strong class="jxr_keyword">void</strong> fireRemoveAppenderEvent(<a href="../../../org/apache/log4j/Category.html">Category</a> logger, <a href="../../../org/apache/log4j/Appender.html">Appender</a> appender) {
<a name="203" href="#203">203</a>     <strong class="jxr_keyword">if</strong>(listeners != <strong class="jxr_keyword">null</strong>) {
<a name="204" href="#204">204</a>       <strong class="jxr_keyword">int</strong> size = listeners.size();
<a name="205" href="#205">205</a>       <a href="../../../org/apache/log4j/spi/HierarchyEventListener.html">HierarchyEventListener</a> listener;
<a name="206" href="#206">206</a>       <strong class="jxr_keyword">for</strong>(<strong class="jxr_keyword">int</strong> i = 0; i &lt; size; i++) {
<a name="207" href="#207">207</a> 	listener = (HierarchyEventListener) listeners.elementAt(i);
<a name="208" href="#208">208</a> 	listener.removeAppenderEvent(logger, appender);
<a name="209" href="#209">209</a>       }
<a name="210" href="#210">210</a>     }
<a name="211" href="#211">211</a>   }
<a name="212" href="#212">212</a> 
<a name="213" href="#213">213</a>   <em class="jxr_javadoccomment">/**</em>
<a name="214" href="#214">214</a> <em class="jxr_javadoccomment">     Returns a {@link Level} representation of the &lt;code&gt;enable&lt;/code&gt;</em>
<a name="215" href="#215">215</a> <em class="jxr_javadoccomment">     state.</em>
<a name="216" href="#216">216</a> 
<a name="217" href="#217">217</a> <em class="jxr_javadoccomment">     @since 1.2 */</em>
<a name="218" href="#218">218</a>   <strong class="jxr_keyword">public</strong>
<a name="219" href="#219">219</a>   <a href="../../../org/apache/log4j/Level.html">Level</a> getThreshold() {
<a name="220" href="#220">220</a>     <strong class="jxr_keyword">return</strong> threshold;
<a name="221" href="#221">221</a>   }
<a name="222" href="#222">222</a> 
<a name="223" href="#223">223</a>   <em class="jxr_javadoccomment">/**</em>
<a name="224" href="#224">224</a> <em class="jxr_javadoccomment">     Returns an integer representation of the this repository's</em>
<a name="225" href="#225">225</a> <em class="jxr_javadoccomment">     threshold.</em>
<a name="226" href="#226">226</a> 
<a name="227" href="#227">227</a> <em class="jxr_javadoccomment">     @since 1.2 */</em>
<a name="228" href="#228">228</a>   <em class="jxr_comment">//public</em>
<a name="229" href="#229">229</a>   <em class="jxr_comment">//int getThresholdInt() {</em>
<a name="230" href="#230">230</a>   <em class="jxr_comment">//  return thresholdInt;</em>
<a name="231" href="#231">231</a>   <em class="jxr_comment">//}</em>
<a name="232" href="#232">232</a> 
<a name="233" href="#233">233</a> 
<a name="234" href="#234">234</a>   <em class="jxr_javadoccomment">/**</em>
<a name="235" href="#235">235</a> <em class="jxr_javadoccomment">     Return a new logger instance named as the first parameter using</em>
<a name="236" href="#236">236</a> <em class="jxr_javadoccomment">     the default factory.</em>
<a name="237" href="#237">237</a> 
<a name="238" href="#238">238</a> <em class="jxr_javadoccomment">     &lt;p&gt;If a logger of that name already exists, then it will be</em>
<a name="239" href="#239">239</a> <em class="jxr_javadoccomment">     returned.  Otherwise, a new logger will be instantiated and</em>
<a name="240" href="#240">240</a> <em class="jxr_javadoccomment">     then linked with its existing ancestors as well as children.</em>
<a name="241" href="#241">241</a> 
<a name="242" href="#242">242</a> <em class="jxr_javadoccomment">     @param name The name of the logger to retrieve.</em>
<a name="243" href="#243">243</a> 
<a name="244" href="#244">244</a> <em class="jxr_javadoccomment"> */</em>
<a name="245" href="#245">245</a>   <strong class="jxr_keyword">public</strong>
<a name="246" href="#246">246</a>   <a href="../../../org/apache/log4j/Logger.html">Logger</a> getLogger(String name) {
<a name="247" href="#247">247</a>     <strong class="jxr_keyword">return</strong> getLogger(name, defaultFactory);
<a name="248" href="#248">248</a>   }
<a name="249" href="#249">249</a> 
<a name="250" href="#250">250</a>  <em class="jxr_javadoccomment">/**</em>
<a name="251" href="#251">251</a> <em class="jxr_javadoccomment">     Return a new logger instance named as the first parameter using</em>
<a name="252" href="#252">252</a> <em class="jxr_javadoccomment">     &lt;code&gt;factory&lt;/code&gt;.</em>
<a name="253" href="#253">253</a> 
<a name="254" href="#254">254</a> <em class="jxr_javadoccomment">     &lt;p&gt;If a logger of that name already exists, then it will be</em>
<a name="255" href="#255">255</a> <em class="jxr_javadoccomment">     returned.  Otherwise, a new logger will be instantiated by the</em>
<a name="256" href="#256">256</a> <em class="jxr_javadoccomment">     &lt;code&gt;factory&lt;/code&gt; parameter and linked with its existing</em>
<a name="257" href="#257">257</a> <em class="jxr_javadoccomment">     ancestors as well as children.</em>
<a name="258" href="#258">258</a> 
<a name="259" href="#259">259</a> <em class="jxr_javadoccomment">     @param name The name of the logger to retrieve.</em>
<a name="260" href="#260">260</a> <em class="jxr_javadoccomment">     @param factory The factory that will make the new logger instance.</em>
<a name="261" href="#261">261</a> 
<a name="262" href="#262">262</a> <em class="jxr_javadoccomment"> */</em>
<a name="263" href="#263">263</a>   <strong class="jxr_keyword">public</strong>
<a name="264" href="#264">264</a>   <a href="../../../org/apache/log4j/Logger.html">Logger</a> getLogger(String name, <a href="../../../org/apache/log4j/spi/LoggerFactory.html">LoggerFactory</a> factory) {
<a name="265" href="#265">265</a>     <em class="jxr_comment">//System.out.println("getInstance("+name+") called.");</em>
<a name="266" href="#266">266</a>     <a href="../../../org/apache/log4j/CategoryKey.html">CategoryKey</a> key = <strong class="jxr_keyword">new</strong> <a href="../../../org/apache/log4j/CategoryKey.html">CategoryKey</a>(name);
<a name="267" href="#267">267</a>     <em class="jxr_comment">// Synchronize to prevent write conflicts. Read conflicts (in</em>
<a name="268" href="#268">268</a>     <em class="jxr_comment">// getChainedLevel method) are possible only if variable</em>
<a name="269" href="#269">269</a>     <em class="jxr_comment">// assignments are non-atomic.</em>
<a name="270" href="#270">270</a>     <a href="../../../org/apache/log4j/Logger.html">Logger</a> logger;
<a name="271" href="#271">271</a> 
<a name="272" href="#272">272</a>     <strong class="jxr_keyword">synchronized</strong>(ht) {
<a name="273" href="#273">273</a>       Object o = ht.get(key);
<a name="274" href="#274">274</a>       <strong class="jxr_keyword">if</strong>(o == <strong class="jxr_keyword">null</strong>) {
<a name="275" href="#275">275</a> 	logger = factory.makeNewLoggerInstance(name);
<a name="276" href="#276">276</a> 	logger.setHierarchy(<strong class="jxr_keyword">this</strong>);
<a name="277" href="#277">277</a> 	ht.put(key, logger);
<a name="278" href="#278">278</a> 	updateParents(logger);
<a name="279" href="#279">279</a> 	<strong class="jxr_keyword">return</strong> logger;
<a name="280" href="#280">280</a>       } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong>(o instanceof <a href="../../../org/apache/log4j/Logger.html">Logger</a>) {
<a name="281" href="#281">281</a> 	<strong class="jxr_keyword">return</strong> (Logger) o;
<a name="282" href="#282">282</a>       } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (o instanceof ProvisionNode) {
<a name="283" href="#283">283</a> 	<em class="jxr_comment">//System.out.println("("+name+") ht.get(this) returned ProvisionNode");</em>
<a name="284" href="#284">284</a> 	logger = factory.makeNewLoggerInstance(name);
<a name="285" href="#285">285</a> 	logger.setHierarchy(<strong class="jxr_keyword">this</strong>);
<a name="286" href="#286">286</a> 	ht.put(key, logger);
<a name="287" href="#287">287</a> 	updateChildren((ProvisionNode) o, logger);
<a name="288" href="#288">288</a> 	updateParents(logger);
<a name="289" href="#289">289</a> 	<strong class="jxr_keyword">return</strong> logger;
<a name="290" href="#290">290</a>       }
<a name="291" href="#291">291</a>       <strong class="jxr_keyword">else</strong> {
<a name="292" href="#292">292</a> 	<em class="jxr_comment">// It should be impossible to arrive here</em>
<a name="293" href="#293">293</a> 	<strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;  <em class="jxr_comment">// but let's keep the compiler happy.</em>
<a name="294" href="#294">294</a>       }
<a name="295" href="#295">295</a>     }
<a name="296" href="#296">296</a>   }
<a name="297" href="#297">297</a> 
<a name="298" href="#298">298</a>   <em class="jxr_javadoccomment">/**</em>
<a name="299" href="#299">299</a> <em class="jxr_javadoccomment">     Returns all the currently defined categories in this hierarchy as</em>
<a name="300" href="#300">300</a> <em class="jxr_javadoccomment">     an {@link java.util.Enumeration Enumeration}.</em>
<a name="301" href="#301">301</a> 
<a name="302" href="#302">302</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 name="303" href="#303">303</a> <em class="jxr_javadoccomment">     {@link Enumeration}.  */</em>
<a name="304" href="#304">304</a>   <strong class="jxr_keyword">public</strong>
<a name="305" href="#305">305</a>   Enumeration getCurrentLoggers() {
<a name="306" href="#306">306</a>     <em class="jxr_comment">// The accumlation in v is necessary because not all elements in</em>
<a name="307" href="#307">307</a>     <em class="jxr_comment">// ht are Logger objects as there might be some ProvisionNodes</em>
<a name="308" href="#308">308</a>     <em class="jxr_comment">// as well.</em>
<a name="309" href="#309">309</a>     Vector v = <strong class="jxr_keyword">new</strong> Vector(ht.size());
<a name="310" href="#310">310</a> 
<a name="311" href="#311">311</a>     Enumeration elems = ht.elements();
<a name="312" href="#312">312</a>     <strong class="jxr_keyword">while</strong>(elems.hasMoreElements()) {
<a name="313" href="#313">313</a>       Object o = elems.nextElement();
<a name="314" href="#314">314</a>       <strong class="jxr_keyword">if</strong>(o instanceof <a href="../../../org/apache/log4j/Logger.html">Logger</a>) {
<a name="315" href="#315">315</a> 	v.addElement(o);
<a name="316" href="#316">316</a>       }
<a name="317" href="#317">317</a>     }
<a name="318" href="#318">318</a>     <strong class="jxr_keyword">return</strong> v.elements();
<a name="319" href="#319">319</a>   }
<a name="320" href="#320">320</a> 
<a name="321" href="#321">321</a>   <em class="jxr_javadoccomment">/**</em>
<a name="322" href="#322">322</a> <em class="jxr_javadoccomment">     @deprecated Please use {@link #getCurrentLoggers} instead.</em>
<a name="323" href="#323">323</a> <em class="jxr_javadoccomment">   */</em>
<a name="324" href="#324">324</a>   <strong class="jxr_keyword">public</strong>
<a name="325" href="#325">325</a>   Enumeration getCurrentCategories() {
<a name="326" href="#326">326</a>     <strong class="jxr_keyword">return</strong> getCurrentLoggers();
<a name="327" href="#327">327</a>   }
<a name="328" href="#328">328</a> 
<a name="329" href="#329">329</a> 
<a name="330" href="#330">330</a>   <em class="jxr_javadoccomment">/**</em>
<a name="331" href="#331">331</a> <em class="jxr_javadoccomment">     Get the renderer map for this hierarchy.</em>
<a name="332" href="#332">332</a> <em class="jxr_javadoccomment">  */</em>
<a name="333" href="#333">333</a>   <strong class="jxr_keyword">public</strong>
<a name="334" href="#334">334</a>   <a href="../../../org/apache/log4j/or/RendererMap.html">RendererMap</a> getRendererMap() {
<a name="335" href="#335">335</a>     <strong class="jxr_keyword">return</strong> rendererMap;
<a name="336" href="#336">336</a>   }
<a name="337" href="#337">337</a> 
<a name="338" href="#338">338</a> 
<a name="339" href="#339">339</a>   <em class="jxr_javadoccomment">/**</em>
<a name="340" href="#340">340</a> <em class="jxr_javadoccomment">     Get the root of this hierarchy.</em>
<a name="341" href="#341">341</a> 
<a name="342" href="#342">342</a> <em class="jxr_javadoccomment">     @since 0.9.0</em>
<a name="343" href="#343">343</a> <em class="jxr_javadoccomment">   */</em>
<a name="344" href="#344">344</a>   <strong class="jxr_keyword">public</strong>
<a name="345" href="#345">345</a>   <a href="../../../org/apache/log4j/Logger.html">Logger</a> getRootLogger() {
<a name="346" href="#346">346</a>     <strong class="jxr_keyword">return</strong> root;
<a name="347" href="#347">347</a>   }
<a name="348" href="#348">348</a> 
<a name="349" href="#349">349</a>   <em class="jxr_javadoccomment">/**</em>
<a name="350" href="#350">350</a> <em class="jxr_javadoccomment">     This method will return &lt;code&gt;true&lt;/code&gt; if this repository is</em>
<a name="351" href="#351">351</a> <em class="jxr_javadoccomment">     disabled for &lt;code&gt;level&lt;/code&gt; object passed as parameter and</em>
<a name="352" href="#352">352</a> <em class="jxr_javadoccomment">     &lt;code&gt;false&lt;/code&gt; otherwise. See also the {@link</em>
<a name="353" href="#353">353</a> <em class="jxr_javadoccomment">     #setThreshold(Level) threshold} emthod.  */</em>
<a name="354" href="#354">354</a>   <strong class="jxr_keyword">public</strong>
<a name="355" href="#355">355</a>   <strong class="jxr_keyword">boolean</strong> isDisabled(<strong class="jxr_keyword">int</strong> level) {
<a name="356" href="#356">356</a>     <strong class="jxr_keyword">return</strong> thresholdInt &gt; level;
<a name="357" href="#357">357</a>   }
<a name="358" href="#358">358</a> 
<a name="359" href="#359">359</a>   <em class="jxr_javadoccomment">/**</em>
<a name="360" href="#360">360</a> <em class="jxr_javadoccomment">     @deprecated Deprecated with no replacement.</em>
<a name="361" href="#361">361</a> <em class="jxr_javadoccomment">  */</em>
<a name="362" href="#362">362</a>   <strong class="jxr_keyword">public</strong>
<a name="363" href="#363">363</a>   <strong class="jxr_keyword">void</strong> overrideAsNeeded(String override) {
<a name="364" href="#364">364</a>     LogLog.warn(<span class="jxr_string">"The Hiearchy.overrideAsNeeded method has been deprecated."</span>);
<a name="365" href="#365">365</a>   }
<a name="366" href="#366">366</a> 
<a name="367" href="#367">367</a>   <em class="jxr_javadoccomment">/**</em>
<a name="368" href="#368">368</a> <em class="jxr_javadoccomment">     Reset all values contained in this hierarchy instance to their</em>
<a name="369" href="#369">369</a> <em class="jxr_javadoccomment">     default.  This removes all appenders from all categories, sets</em>
<a name="370" href="#370">370</a> <em class="jxr_javadoccomment">     the level of all non-root categories to &lt;code&gt;null&lt;/code&gt;,</em>
<a name="371" href="#371">371</a> <em class="jxr_javadoccomment">     sets their additivity flag to &lt;code&gt;true&lt;/code&gt; and sets the level</em>
<a name="372" href="#372">372</a> <em class="jxr_javadoccomment">     of the root logger to {@link Level#DEBUG DEBUG}.  Moreover,</em>
<a name="373" href="#373">373</a> <em class="jxr_javadoccomment">     message disabling is set its default "off" value.</em>
<a name="374" href="#374">374</a> 
<a name="375" href="#375">375</a> <em class="jxr_javadoccomment">     &lt;p&gt;Existing categories are not removed. They are just reset.</em>
<a name="376" href="#376">376</a> 
<a name="377" href="#377">377</a> <em class="jxr_javadoccomment">     &lt;p&gt;This method should be used sparingly and with care as it will</em>
<a name="378" href="#378">378</a> <em class="jxr_javadoccomment">     block all logging until it is completed.&lt;/p&gt;</em>
<a name="379" href="#379">379</a> 
<a name="380" href="#380">380</a> <em class="jxr_javadoccomment">     @since 0.8.5 */</em>
<a name="381" href="#381">381</a>   <strong class="jxr_keyword">public</strong>
<a name="382" href="#382">382</a>   <strong class="jxr_keyword">void</strong> resetConfiguration() {
<a name="383" href="#383">383</a> 
<a name="384" href="#384">384</a>     getRootLogger().setLevel((Level) Level.DEBUG);
<a name="385" href="#385">385</a>     root.setResourceBundle(<strong class="jxr_keyword">null</strong>);
<a name="386" href="#386">386</a>     setThreshold(Level.ALL);
<a name="387" href="#387">387</a> 
<a name="388" href="#388">388</a>     <em class="jxr_comment">// the synchronization is needed to prevent JDK 1.2.x hashtable</em>
<a name="389" href="#389">389</a>     <em class="jxr_comment">// surprises</em>
<a name="390" href="#390">390</a>     <strong class="jxr_keyword">synchronized</strong>(ht) {
<a name="391" href="#391">391</a>       shutdown(); <em class="jxr_comment">// nested locks are OK</em>
<a name="392" href="#392">392</a> 
<a name="393" href="#393">393</a>       Enumeration cats = getCurrentLoggers();
<a name="394" href="#394">394</a>       <strong class="jxr_keyword">while</strong>(cats.hasMoreElements()) {
<a name="395" href="#395">395</a> 	Logger c = (Logger) cats.nextElement();
<a name="396" href="#396">396</a> 	c.setLevel(<strong class="jxr_keyword">null</strong>);
<a name="397" href="#397">397</a> 	c.setAdditivity(<strong class="jxr_keyword">true</strong>);
<a name="398" href="#398">398</a> 	c.setResourceBundle(<strong class="jxr_keyword">null</strong>);
<a name="399" href="#399">399</a>       }
<a name="400" href="#400">400</a>     }
<a name="401" href="#401">401</a>     rendererMap.clear();
<a name="402" href="#402">402</a>     throwableRenderer = <strong class="jxr_keyword">null</strong>;
<a name="403" href="#403">403</a>   }
<a name="404" href="#404">404</a> 
<a name="405" href="#405">405</a>   <em class="jxr_javadoccomment">/**</em>
<a name="406" href="#406">406</a> <em class="jxr_javadoccomment">     Does nothing.</em>
<a name="407" href="#407">407</a> 
<a name="408" href="#408">408</a> <em class="jxr_javadoccomment">     @deprecated Deprecated with no replacement.</em>
<a name="409" href="#409">409</a> <em class="jxr_javadoccomment">   */</em>
<a name="410" href="#410">410</a>   <strong class="jxr_keyword">public</strong>
<a name="411" href="#411">411</a>   <strong class="jxr_keyword">void</strong> setDisableOverride(String override) {
<a name="412" href="#412">412</a>     LogLog.warn(<span class="jxr_string">"The Hiearchy.setDisableOverride method has been deprecated."</span>);
<a name="413" href="#413">413</a>   }
<a name="414" href="#414">414</a> 
<a name="415" href="#415">415</a> 
<a name="416" href="#416">416</a> 
<a name="417" href="#417">417</a>   <em class="jxr_javadoccomment">/**</em>
<a name="418" href="#418">418</a> <em class="jxr_javadoccomment">     Used by subclasses to add a renderer to the hierarchy passed as parameter.</em>
<a name="419" href="#419">419</a> <em class="jxr_javadoccomment">   */</em>
<a name="420" href="#420">420</a>   <strong class="jxr_keyword">public</strong>
<a name="421" href="#421">421</a>   <strong class="jxr_keyword">void</strong> setRenderer(Class renderedClass, <a href="../../../org/apache/log4j/or/ObjectRenderer.html">ObjectRenderer</a> renderer) {
<a name="422" href="#422">422</a>     rendererMap.put(renderedClass, renderer);
<a name="423" href="#423">423</a>   }
<a name="424" href="#424">424</a> 
<a name="425" href="#425">425</a>     <em class="jxr_javadoccomment">/**</em>
<a name="426" href="#426">426</a> <em class="jxr_javadoccomment">     * {@inheritDoc}</em>
<a name="427" href="#427">427</a> <em class="jxr_javadoccomment">     */</em>
<a name="428" href="#428">428</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setThrowableRenderer(<strong class="jxr_keyword">final</strong> <a href="../../../org/apache/log4j/spi/ThrowableRenderer.html">ThrowableRenderer</a> renderer) {
<a name="429" href="#429">429</a>       throwableRenderer = renderer;
<a name="430" href="#430">430</a>   }
<a name="431" href="#431">431</a> 
<a name="432" href="#432">432</a>     <em class="jxr_javadoccomment">/**</em>
<a name="433" href="#433">433</a> <em class="jxr_javadoccomment">     * {@inheritDoc}</em>
<a name="434" href="#434">434</a> <em class="jxr_javadoccomment">     */</em>
<a name="435" href="#435">435</a>   <strong class="jxr_keyword">public</strong> <a href="../../../org/apache/log4j/spi/ThrowableRenderer.html">ThrowableRenderer</a> getThrowableRenderer() {
<a name="436" href="#436">436</a>       <strong class="jxr_keyword">return</strong> throwableRenderer;
<a name="437" href="#437">437</a>   }
<a name="438" href="#438">438</a> 
<a name="439" href="#439">439</a> 
<a name="440" href="#440">440</a>   <em class="jxr_javadoccomment">/**</em>
<a name="441" href="#441">441</a> <em class="jxr_javadoccomment">     Shutting down a hierarchy will &lt;em&gt;safely&lt;/em&gt; close and remove</em>
<a name="442" href="#442">442</a> <em class="jxr_javadoccomment">     all appenders in all categories including the root logger.</em>
<a name="443" href="#443">443</a> 
<a name="444" href="#444">444</a> <em class="jxr_javadoccomment">     &lt;p&gt;Some appenders such as {@link org.apache.log4j.net.SocketAppender}</em>
<a name="445" href="#445">445</a> <em class="jxr_javadoccomment">     and {@link AsyncAppender} need to be closed before the</em>
<a name="446" href="#446">446</a> <em class="jxr_javadoccomment">     application exists. Otherwise, pending logging events might be</em>
<a name="447" href="#447">447</a> <em class="jxr_javadoccomment">     lost.</em>
<a name="448" href="#448">448</a> 
<a name="449" href="#449">449</a> <em class="jxr_javadoccomment">     &lt;p&gt;The &lt;code&gt;shutdown&lt;/code&gt; method is careful to close nested</em>
<a name="450" href="#450">450</a> <em class="jxr_javadoccomment">     appenders before closing regular appenders. This is allows</em>
<a name="451" href="#451">451</a> <em class="jxr_javadoccomment">     configurations where a regular appender is attached to a logger</em>
<a name="452" href="#452">452</a> <em class="jxr_javadoccomment">     and again to a nested appender.</em>
<a name="453" href="#453">453</a> 
<a name="454" href="#454">454</a> 
<a name="455" href="#455">455</a> <em class="jxr_javadoccomment">     @since 1.0 */</em>
<a name="456" href="#456">456</a>   <strong class="jxr_keyword">public</strong>
<a name="457" href="#457">457</a>   <strong class="jxr_keyword">void</strong> shutdown() {
<a name="458" href="#458">458</a>     <a href="../../../org/apache/log4j/Logger.html">Logger</a> root = getRootLogger();
<a name="459" href="#459">459</a> 
<a name="460" href="#460">460</a>     <em class="jxr_comment">// begin by closing nested appenders</em>
<a name="461" href="#461">461</a>     root.closeNestedAppenders();
<a name="462" href="#462">462</a> 
<a name="463" href="#463">463</a>     <strong class="jxr_keyword">synchronized</strong>(ht) {
<a name="464" href="#464">464</a>       Enumeration cats = <strong class="jxr_keyword">this</strong>.getCurrentLoggers();
<a name="465" href="#465">465</a>       <strong class="jxr_keyword">while</strong>(cats.hasMoreElements()) {
<a name="466" href="#466">466</a> 	Logger c = (Logger) cats.nextElement();
<a name="467" href="#467">467</a> 	c.closeNestedAppenders();
<a name="468" href="#468">468</a>       }
<a name="469" href="#469">469</a> 
<a name="470" href="#470">470</a>       <em class="jxr_comment">// then, remove all appenders</em>
<a name="471" href="#471">471</a>       root.removeAllAppenders();
<a name="472" href="#472">472</a>       cats = <strong class="jxr_keyword">this</strong>.getCurrentLoggers();
<a name="473" href="#473">473</a>       <strong class="jxr_keyword">while</strong>(cats.hasMoreElements()) {
<a name="474" href="#474">474</a> 	Logger c = (Logger) cats.nextElement();
<a name="475" href="#475">475</a> 	c.removeAllAppenders();
<a name="476" href="#476">476</a>       }
<a name="477" href="#477">477</a>     }
<a name="478" href="#478">478</a>   }
<a name="479" href="#479">479</a> 
<a name="480" href="#480">480</a> 
<a name="481" href="#481">481</a>   <em class="jxr_javadoccomment">/**</em>
<a name="482" href="#482">482</a> <em class="jxr_javadoccomment">     This method loops through all the *potential* parents of</em>
<a name="483" href="#483">483</a> <em class="jxr_javadoccomment">     'cat'. There 3 possible cases:</em>
<a name="484" href="#484">484</a> 
<a name="485" href="#485">485</a> <em class="jxr_javadoccomment">     1) No entry for the potential parent of 'cat' exists</em>
<a name="486" href="#486">486</a> 
<a name="487" href="#487">487</a> <em class="jxr_javadoccomment">        We create a ProvisionNode for this potential parent and insert</em>
<a name="488" href="#488">488</a> <em class="jxr_javadoccomment">        'cat' in that provision node.</em>
<a name="489" href="#489">489</a> 
<a name="490" href="#490">490</a> <em class="jxr_javadoccomment">     2) There entry is of type Logger for the potential parent.</em>
<a name="491" href="#491">491</a> 
<a name="492" href="#492">492</a> <em class="jxr_javadoccomment">        The entry is 'cat's nearest existing parent. We update cat's</em>
<a name="493" href="#493">493</a> <em class="jxr_javadoccomment">        parent field with this entry. We also break from the loop</em>
<a name="494" href="#494">494</a> <em class="jxr_javadoccomment">        because updating our parent's parent is our parent's</em>
<a name="495" href="#495">495</a> <em class="jxr_javadoccomment">        responsibility.</em>
<a name="496" href="#496">496</a> 
<a name="497" href="#497">497</a> <em class="jxr_javadoccomment">     3) There entry is of type ProvisionNode for this potential parent.</em>
<a name="498" href="#498">498</a> 
<a name="499" href="#499">499</a> <em class="jxr_javadoccomment">        We add 'cat' to the list of children for this potential parent.</em>
<a name="500" href="#500">500</a> <em class="jxr_javadoccomment">   */</em>
<a name="501" href="#501">501</a>   <strong class="jxr_keyword">final</strong>
<a name="502" href="#502">502</a>   <strong class="jxr_keyword">private</strong>
<a name="503" href="#503">503</a>   <strong class="jxr_keyword">void</strong> updateParents(<a href="../../../org/apache/log4j/Logger.html">Logger</a> cat) {
<a name="504" href="#504">504</a>     String name = cat.name;
<a name="505" href="#505">505</a>     <strong class="jxr_keyword">int</strong> length = name.length();
<a name="506" href="#506">506</a>     <strong class="jxr_keyword">boolean</strong> parentFound = false;
<a name="507" href="#507">507</a> 
<a name="508" href="#508">508</a>     <em class="jxr_comment">//System.out.println("UpdateParents called for " + name);</em>
<a name="509" href="#509">509</a> 
<a name="510" href="#510">510</a>     <em class="jxr_comment">// if name = "w.x.y.z", loop thourgh "w.x.y", "w.x" and "w", but not "w.x.y.z"</em>
<a name="511" href="#511">511</a>     <strong class="jxr_keyword">for</strong>(<strong class="jxr_keyword">int</strong> i = name.lastIndexOf('.', length-1); i &gt;= 0;
<a name="512" href="#512">512</a> 	                                 i = name.lastIndexOf('.', i-1))  {
<a name="513" href="#513">513</a>       String substr = name.substring(0, i);
<a name="514" href="#514">514</a> 
<a name="515" href="#515">515</a>       <em class="jxr_comment">//System.out.println("Updating parent : " + substr);</em>
<a name="516" href="#516">516</a>       <a href="../../../org/apache/log4j/CategoryKey.html">CategoryKey</a> key = <strong class="jxr_keyword">new</strong> <a href="../../../org/apache/log4j/CategoryKey.html">CategoryKey</a>(substr); <em class="jxr_comment">// simple constructor</em>
<a name="517" href="#517">517</a>       Object o = ht.get(key);
<a name="518" href="#518">518</a>       <em class="jxr_comment">// Create a provision node for a future parent.</em>
<a name="519" href="#519">519</a>       <strong class="jxr_keyword">if</strong>(o == <strong class="jxr_keyword">null</strong>) {
<a name="520" href="#520">520</a> 	<em class="jxr_comment">//System.out.println("No parent "+substr+" found. Creating ProvisionNode.");</em>
<a name="521" href="#521">521</a> 	ProvisionNode pn = <strong class="jxr_keyword">new</strong> <a href="../../../org/apache/log4j/ProvisionNode.html">ProvisionNode</a>(cat);
<a name="522" href="#522">522</a> 	ht.put(key, pn);
<a name="523" href="#523">523</a>       } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong>(o instanceof <a href="../../../org/apache/log4j/Category.html">Category</a>) {
<a name="524" href="#524">524</a> 	parentFound = <strong class="jxr_keyword">true</strong>;
<a name="525" href="#525">525</a> 	cat.parent = (Category) o;
<a name="526" href="#526">526</a> 	<em class="jxr_comment">//System.out.println("Linking " + cat.name + " -&gt; " + ((Category) o).name);</em>
<a name="527" href="#527">527</a> 	<strong class="jxr_keyword">break</strong>; <em class="jxr_comment">// no need to update the ancestors of the closest ancestor</em>
<a name="528" href="#528">528</a>       } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong>(o instanceof <a href="../../../org/apache/log4j/ProvisionNode.html">ProvisionNode</a>) {
<a name="529" href="#529">529</a> 	((ProvisionNode) o).addElement(cat);
<a name="530" href="#530">530</a>       } <strong class="jxr_keyword">else</strong> {
<a name="531" href="#531">531</a> 	Exception e = <strong class="jxr_keyword">new</strong> IllegalStateException(<span class="jxr_string">"unexpected object type "</span> +
<a name="532" href="#532">532</a> 					o.getClass() + <span class="jxr_string">" in ht."</span>);
<a name="533" href="#533">533</a> 	e.printStackTrace();
<a name="534" href="#534">534</a>       }
<a name="535" href="#535">535</a>     }
<a name="536" href="#536">536</a>     <em class="jxr_comment">// If we could not find any existing parents, then link with root.</em>
<a name="537" href="#537">537</a>     <strong class="jxr_keyword">if</strong>(!parentFound)
<a name="538" href="#538">538</a>       cat.parent = root;
<a name="539" href="#539">539</a>   }
<a name="540" href="#540">540</a> 
<a name="541" href="#541">541</a>   <em class="jxr_javadoccomment">/**</em>
<a name="542" href="#542">542</a> <em class="jxr_javadoccomment">      We update the links for all the children that placed themselves</em>
<a name="543" href="#543">543</a> <em class="jxr_javadoccomment">      in the provision node 'pn'. The second argument 'cat' is a</em>
<a name="544" href="#544">544</a> <em class="jxr_javadoccomment">      reference for the newly created Logger, parent of all the</em>
<a name="545" href="#545">545</a> <em class="jxr_javadoccomment">      children in 'pn'</em>
<a name="546" href="#546">546</a> 
<a name="547" href="#547">547</a> <em class="jxr_javadoccomment">      We loop on all the children 'c' in 'pn':</em>
<a name="548" href="#548">548</a> 
<a name="549" href="#549">549</a> <em class="jxr_javadoccomment">         If the child 'c' has been already linked to a child of</em>
<a name="550" href="#550">550</a> <em class="jxr_javadoccomment">         'cat' then there is no need to update 'c'.</em>
<a name="551" href="#551">551</a> 
<a name="552" href="#552">552</a> <em class="jxr_javadoccomment">	 Otherwise, we set cat's parent field to c's parent and set</em>
<a name="553" href="#553">553</a> <em class="jxr_javadoccomment">	 c's parent field to cat.</em>
<a name="554" href="#554">554</a> 
<a name="555" href="#555">555</a> <em class="jxr_javadoccomment">  */</em>
<a name="556" href="#556">556</a>   <strong class="jxr_keyword">final</strong>
<a name="557" href="#557">557</a>   <strong class="jxr_keyword">private</strong>
<a name="558" href="#558">558</a>   <strong class="jxr_keyword">void</strong> updateChildren(<a href="../../../org/apache/log4j/ProvisionNode.html">ProvisionNode</a> pn, <a href="../../../org/apache/log4j/Logger.html">Logger</a> logger) {
<a name="559" href="#559">559</a>     <em class="jxr_comment">//System.out.println("updateChildren called for " + logger.name);</em>
<a name="560" href="#560">560</a>     <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> last = pn.size();
<a name="561" href="#561">561</a> 
<a name="562" href="#562">562</a>     <strong class="jxr_keyword">for</strong>(<strong class="jxr_keyword">int</strong> i = 0; i &lt; last; i++) {
<a name="563" href="#563">563</a>       <a href="../../../org/apache/log4j/Logger.html">Logger</a> l = (Logger) pn.elementAt(i);
<a name="564" href="#564">564</a>       <em class="jxr_comment">//System.out.println("Updating child " +p.name);</em>
<a name="565" href="#565">565</a> 
<a name="566" href="#566">566</a>       <em class="jxr_comment">// Unless this child already points to a correct (lower) parent,</em>
<a name="567" href="#567">567</a>       <em class="jxr_comment">// make cat.parent point to l.parent and l.parent to cat.</em>
<a name="568" href="#568">568</a>       <strong class="jxr_keyword">if</strong>(!l.parent.name.startsWith(logger.name)) {
<a name="569" href="#569">569</a> 	logger.parent = l.parent;
<a name="570" href="#570">570</a> 	l.parent = logger;
<a name="571" href="#571">571</a>       }
<a name="572" href="#572">572</a>     }
<a name="573" href="#573">573</a>   }
<a name="574" href="#574">574</a> 
<a name="575" href="#575">575</a> }
<a name="576" href="#576">576</a> 
<a name="577" href="#577">577</a> 
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

