<!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>DOMConfigurator xref</title>
<link type="text/css" rel="stylesheet" href="../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../apidocs/org/apache/log4j/xml/DOMConfigurator.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>  <strong class="jxr_keyword">package</strong> org.apache.log4j.xml;
<a name="19" href="#19">19</a>  
<a name="20" href="#20">20</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.Appender;
<a name="21" href="#21">21</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.Layout;
<a name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.Level;
<a name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.LogManager;
<a name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.Logger;
<a name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.config.PropertySetter;
<a name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.helpers.FileWatchdog;
<a name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.helpers.Loader;
<a name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.helpers.LogLog;
<a name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.helpers.OptionConverter;
<a name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.or.RendererMap;
<a name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.spi.AppenderAttachable;
<a name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.spi.Configurator;
<a name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.spi.ErrorHandler;
<a name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.spi.Filter;
<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.LoggerRepository;
<a name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.spi.RendererSupport;
<a name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.spi.ThrowableRenderer;
<a name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.spi.ThrowableRendererSupport;
<a name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> org.w3c.dom.Document;
<a name="41" href="#41">41</a>  <strong class="jxr_keyword">import</strong> org.w3c.dom.Element;
<a name="42" href="#42">42</a>  <strong class="jxr_keyword">import</strong> org.w3c.dom.NamedNodeMap;
<a name="43" href="#43">43</a>  <strong class="jxr_keyword">import</strong> org.w3c.dom.Node;
<a name="44" href="#44">44</a>  <strong class="jxr_keyword">import</strong> org.w3c.dom.NodeList;
<a name="45" href="#45">45</a>  <strong class="jxr_keyword">import</strong> org.xml.sax.InputSource;
<a name="46" href="#46">46</a>  <strong class="jxr_keyword">import</strong> org.xml.sax.SAXException;
<a name="47" href="#47">47</a>  
<a name="48" href="#48">48</a>  <strong class="jxr_keyword">import</strong> javax.xml.parsers.DocumentBuilder;
<a name="49" href="#49">49</a>  <strong class="jxr_keyword">import</strong> javax.xml.parsers.DocumentBuilderFactory;
<a name="50" href="#50">50</a>  <strong class="jxr_keyword">import</strong> javax.xml.parsers.FactoryConfigurationError;
<a name="51" href="#51">51</a>  <strong class="jxr_keyword">import</strong> java.io.File;
<a name="52" href="#52">52</a>  <strong class="jxr_keyword">import</strong> java.io.IOException;
<a name="53" href="#53">53</a>  <strong class="jxr_keyword">import</strong> java.io.InputStream;
<a name="54" href="#54">54</a>  <strong class="jxr_keyword">import</strong> java.io.InterruptedIOException;
<a name="55" href="#55">55</a>  <strong class="jxr_keyword">import</strong> java.io.Reader;
<a name="56" href="#56">56</a>  <strong class="jxr_keyword">import</strong> java.lang.reflect.Method;
<a name="57" href="#57">57</a>  <strong class="jxr_keyword">import</strong> java.lang.reflect.InvocationTargetException;
<a name="58" href="#58">58</a>  <strong class="jxr_keyword">import</strong> java.net.URL;
<a name="59" href="#59">59</a>  <strong class="jxr_keyword">import</strong> java.net.URLConnection;
<a name="60" href="#60">60</a>  <strong class="jxr_keyword">import</strong> java.util.Hashtable;
<a name="61" href="#61">61</a>  <strong class="jxr_keyword">import</strong> java.util.Properties;
<a name="62" href="#62">62</a>  
<a name="63" href="#63">63</a>  <em class="jxr_comment">// Contributors:   Mark Womack</em>
<a name="64" href="#64">64</a>  <em class="jxr_comment">//                 Arun Katkere </em>
<a name="65" href="#65">65</a>  
<a name="66" href="#66">66</a>  <em class="jxr_javadoccomment">/**</em>
<a name="67" href="#67">67</a>  <em class="jxr_javadoccomment">   Use this class to initialize the log4j environment using a DOM tree.</em>
<a name="68" href="#68">68</a>  
<a name="69" href="#69">69</a>  <em class="jxr_javadoccomment">   &lt;p&gt;The DTD is specified in &lt;a</em>
<a name="70" href="#70">70</a>  <em class="jxr_javadoccomment">   href="doc-files/log4j.dtd"&gt;&lt;b&gt;log4j.dtd&lt;/b&gt;&lt;/a&gt;.</em>
<a name="71" href="#71">71</a>  
<a name="72" href="#72">72</a>  <em class="jxr_javadoccomment">   &lt;p&gt;Sometimes it is useful to see how log4j is reading configuration</em>
<a name="73" href="#73">73</a>  <em class="jxr_javadoccomment">   files. You can enable log4j internal logging by defining the</em>
<a name="74" href="#74">74</a>  <em class="jxr_javadoccomment">   &lt;b&gt;log4j.debug&lt;/b&gt; variable on the java command</em>
<a name="75" href="#75">75</a>  <em class="jxr_javadoccomment">   line. Alternatively, set the &lt;code&gt;debug&lt;/code&gt; attribute in the</em>
<a name="76" href="#76">76</a>  <em class="jxr_javadoccomment">   &lt;code&gt;log4j:configuration&lt;/code&gt; element. As in</em>
<a name="77" href="#77">77</a>  <em class="jxr_javadoccomment">&lt;pre&gt;</em>
<a name="78" href="#78">78</a>  <em class="jxr_javadoccomment">   &amp;lt;log4j:configuration &lt;b&gt;debug="true"&lt;/b&gt; xmlns:log4j="<a href="http://jakarta.apache.org/log4j/" target="alexandria_uri">http://jakarta.apache.org/log4j/</a>"&gt;</em>
<a name="79" href="#79">79</a>  <em class="jxr_javadoccomment">   ...</em>
<a name="80" href="#80">80</a>  <em class="jxr_javadoccomment">   &amp;lt;/log4j:configuration&gt;</em>
<a name="81" href="#81">81</a>  <em class="jxr_javadoccomment">&lt;/pre&gt;</em>
<a name="82" href="#82">82</a>  
<a name="83" href="#83">83</a>  <em class="jxr_javadoccomment">   &lt;p&gt;There are sample XML files included in the package.</em>
<a name="84" href="#84">84</a>  <em class="jxr_javadoccomment">   </em>
<a name="85" href="#85">85</a>  <em class="jxr_javadoccomment">   @author Christopher Taylor</em>
<a name="86" href="#86">86</a>  <em class="jxr_javadoccomment">   @author Ceki G&amp;uuml;lc&amp;uuml;</em>
<a name="87" href="#87">87</a>  <em class="jxr_javadoccomment">   @author Anders Kristensen</em>
<a name="88" href="#88">88</a>  
<a name="89" href="#89">89</a>  <em class="jxr_javadoccomment">   @since 0.8.3 */</em>
<a name="90" href="#90">90</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/log4j/xml/DOMConfigurator.html">DOMConfigurator</a> implements <a href="../../../../org/apache/log4j/spi/Configurator.html">Configurator</a> {
<a name="91" href="#91">91</a>  
<a name="92" href="#92">92</a>    <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String CONFIGURATION_TAG = <span class="jxr_string">"log4j:configuration"</span>;
<a name="93" href="#93">93</a>    <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String OLD_CONFIGURATION_TAG = <span class="jxr_string">"configuration"</span>;
<a name="94" href="#94">94</a>    <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String RENDERER_TAG      = <span class="jxr_string">"renderer"</span>;
<a name="95" href="#95">95</a>    <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String THROWABLE_RENDERER_TAG = <span class="jxr_string">"throwableRenderer"</span>;
<a name="96" href="#96">96</a>    <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String APPENDER_TAG 	= <span class="jxr_string">"appender"</span>;
<a name="97" href="#97">97</a>    <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String APPENDER_REF_TAG 	= <span class="jxr_string">"appender-ref"</span>;  
<a name="98" href="#98">98</a>    <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String PARAM_TAG    	= <span class="jxr_string">"param"</span>;
<a name="99" href="#99">99</a>    <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String LAYOUT_TAG	= <span class="jxr_string">"layout"</span>;
<a name="100" href="#100">100</a>   <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String CATEGORY		= <span class="jxr_string">"category"</span>;
<a name="101" href="#101">101</a>   <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String LOGGER		= <span class="jxr_string">"logger"</span>;
<a name="102" href="#102">102</a>   <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String LOGGER_REF	= <span class="jxr_string">"logger-ref"</span>;
<a name="103" href="#103">103</a>   <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String CATEGORY_FACTORY_TAG  = <span class="jxr_string">"categoryFactory"</span>;
<a name="104" href="#104">104</a>   <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String LOGGER_FACTORY_TAG  = <span class="jxr_string">"loggerFactory"</span>;
<a name="105" href="#105">105</a>   <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String NAME_ATTR		= <span class="jxr_string">"name"</span>;
<a name="106" href="#106">106</a>   <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String CLASS_ATTR        = <span class="jxr_string">"class"</span>;
<a name="107" href="#107">107</a>   <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String VALUE_ATTR	= <span class="jxr_string">"value"</span>;
<a name="108" href="#108">108</a>   <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String ROOT_TAG		= <span class="jxr_string">"root"</span>;
<a name="109" href="#109">109</a>   <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String ROOT_REF		= <span class="jxr_string">"root-ref"</span>;
<a name="110" href="#110">110</a>   <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String LEVEL_TAG	        = <span class="jxr_string">"level"</span>;
<a name="111" href="#111">111</a>   <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String PRIORITY_TAG      = <span class="jxr_string">"priority"</span>;
<a name="112" href="#112">112</a>   <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String FILTER_TAG	= <span class="jxr_string">"filter"</span>;
<a name="113" href="#113">113</a>   <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String ERROR_HANDLER_TAG	= <span class="jxr_string">"errorHandler"</span>;
<a name="114" href="#114">114</a>   <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String REF_ATTR		= <span class="jxr_string">"ref"</span>;
<a name="115" href="#115">115</a>   <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String ADDITIVITY_ATTR    = <span class="jxr_string">"additivity"</span>;  
<a name="116" href="#116">116</a>   <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String THRESHOLD_ATTR       = <span class="jxr_string">"threshold"</span>;
<a name="117" href="#117">117</a>   <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String CONFIG_DEBUG_ATTR  = <span class="jxr_string">"configDebug"</span>;
<a name="118" href="#118">118</a>   <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String INTERNAL_DEBUG_ATTR  = <span class="jxr_string">"debug"</span>;
<a name="119" href="#119">119</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String RESET_ATTR  = <span class="jxr_string">"reset"</span>;
<a name="120" href="#120">120</a>   <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String RENDERING_CLASS_ATTR = <span class="jxr_string">"renderingClass"</span>;
<a name="121" href="#121">121</a>   <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String RENDERED_CLASS_ATTR = <span class="jxr_string">"renderedClass"</span>;
<a name="122" href="#122">122</a> 
<a name="123" href="#123">123</a>   <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String EMPTY_STR = <span class="jxr_string">""</span>;
<a name="124" href="#124">124</a>   <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Class[] ONE_STRING_PARAM = <strong class="jxr_keyword">new</strong> Class[] {String.<strong class="jxr_keyword">class</strong>};
<a name="125" href="#125">125</a> 
<a name="126" href="#126">126</a>   <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">static</strong> String dbfKey = <span class="jxr_string">"javax.xml.parsers.DocumentBuilderFactory"</span>;
<a name="127" href="#127">127</a> 
<a name="128" href="#128">128</a>   
<a name="129" href="#129">129</a>   <em class="jxr_comment">// key: appenderName, value: appender</em>
<a name="130" href="#130">130</a>   Hashtable appenderBag;
<a name="131" href="#131">131</a> 
<a name="132" href="#132">132</a>   Properties props;
<a name="133" href="#133">133</a>   <a href="../../../../org/apache/log4j/spi/LoggerRepository.html">LoggerRepository</a> repository;
<a name="134" href="#134">134</a> 
<a name="135" href="#135">135</a>   <strong class="jxr_keyword">protected</strong> <a href="../../../../org/apache/log4j/spi/LoggerFactory.html">LoggerFactory</a> catFactory = <strong class="jxr_keyword">null</strong>;
<a name="136" href="#136">136</a> 
<a name="137" href="#137">137</a>   <em class="jxr_javadoccomment">/**</em>
<a name="138" href="#138">138</a> <em class="jxr_javadoccomment">     No argument constructor.</em>
<a name="139" href="#139">139</a> <em class="jxr_javadoccomment">  */</em>
<a name="140" href="#140">140</a>   <strong class="jxr_keyword">public</strong>
<a name="141" href="#141">141</a>   <a href="../../../../org/apache/log4j/xml/DOMConfigurator.html">DOMConfigurator</a> () { 
<a name="142" href="#142">142</a>     appenderBag = <strong class="jxr_keyword">new</strong> Hashtable();
<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">     Used internally to parse appenders by IDREF name.</em>
<a name="147" href="#147">147</a> <em class="jxr_javadoccomment">  */</em>
<a name="148" href="#148">148</a>   <strong class="jxr_keyword">protected</strong>
<a name="149" href="#149">149</a>   <a href="../../../../org/apache/log4j/Appender.html">Appender</a> findAppenderByName(Document doc, String appenderName)  {      
<a name="150" href="#150">150</a>     <a href="../../../../org/apache/log4j/Appender.html">Appender</a> appender = (Appender) appenderBag.get(appenderName);
<a name="151" href="#151">151</a> 
<a name="152" href="#152">152</a>     <strong class="jxr_keyword">if</strong>(appender != <strong class="jxr_keyword">null</strong>) {
<a name="153" href="#153">153</a>       <strong class="jxr_keyword">return</strong> appender;
<a name="154" href="#154">154</a>     } <strong class="jxr_keyword">else</strong> {
<a name="155" href="#155">155</a>       <em class="jxr_comment">// Doesn't work on DOM Level 1 :</em>
<a name="156" href="#156">156</a>       <em class="jxr_comment">// Element element = doc.getElementById(appenderName);</em>
<a name="157" href="#157">157</a>                         
<a name="158" href="#158">158</a>       <em class="jxr_comment">// Endre's hack:</em>
<a name="159" href="#159">159</a>       Element element = <strong class="jxr_keyword">null</strong>;
<a name="160" href="#160">160</a>       NodeList list = doc.getElementsByTagName(<span class="jxr_string">"appender"</span>);
<a name="161" href="#161">161</a>       <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> t=0; t &lt; list.getLength(); t++) {
<a name="162" href="#162">162</a> 	Node node = list.item(t);
<a name="163" href="#163">163</a> 	NamedNodeMap map= node.getAttributes();
<a name="164" href="#164">164</a> 	Node attrNode = map.getNamedItem(<span class="jxr_string">"name"</span>);
<a name="165" href="#165">165</a> 	<strong class="jxr_keyword">if</strong> (appenderName.equals(attrNode.getNodeValue())) {
<a name="166" href="#166">166</a> 	  element = (Element) node;
<a name="167" href="#167">167</a> 	  <strong class="jxr_keyword">break</strong>;
<a name="168" href="#168">168</a> 	}
<a name="169" href="#169">169</a>       }
<a name="170" href="#170">170</a>       <em class="jxr_comment">// Hack finished.</em>
<a name="171" href="#171">171</a> 
<a name="172" href="#172">172</a>       <strong class="jxr_keyword">if</strong>(element == <strong class="jxr_keyword">null</strong>) {
<a name="173" href="#173">173</a> 	LogLog.error(<span class="jxr_string">"No appender named ["</span>+appenderName+<span class="jxr_string">"] could be found."</span>); 
<a name="174" href="#174">174</a> 	<strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a name="175" href="#175">175</a>       } <strong class="jxr_keyword">else</strong> {
<a name="176" href="#176">176</a> 	      appender = parseAppender(element);
<a name="177" href="#177">177</a>           <strong class="jxr_keyword">if</strong> (appender != <strong class="jxr_keyword">null</strong>) {
<a name="178" href="#178">178</a>             appenderBag.put(appenderName, appender);
<a name="179" href="#179">179</a>           }
<a name="180" href="#180">180</a>     <strong class="jxr_keyword">return</strong> appender;
<a name="181" href="#181">181</a>       }
<a name="182" href="#182">182</a>     } 
<a name="183" href="#183">183</a>   }
<a name="184" href="#184">184</a>   <em class="jxr_javadoccomment">/**</em>
<a name="185" href="#185">185</a> <em class="jxr_javadoccomment">     Used internally to parse appenders by IDREF element.</em>
<a name="186" href="#186">186</a> <em class="jxr_javadoccomment">   */</em>
<a name="187" href="#187">187</a>   <strong class="jxr_keyword">protected</strong>
<a name="188" href="#188">188</a>   <a href="../../../../org/apache/log4j/Appender.html">Appender</a> findAppenderByReference(Element appenderRef) {    
<a name="189" href="#189">189</a>     String appenderName = subst(appenderRef.getAttribute(REF_ATTR));    
<a name="190" href="#190">190</a>     Document doc = appenderRef.getOwnerDocument();
<a name="191" href="#191">191</a>     <strong class="jxr_keyword">return</strong> findAppenderByName(doc, appenderName);
<a name="192" href="#192">192</a>   }
<a name="193" href="#193">193</a> 
<a name="194" href="#194">194</a>     <em class="jxr_javadoccomment">/**</em>
<a name="195" href="#195">195</a> <em class="jxr_javadoccomment">     * Delegates unrecognized content to created instance if</em>
<a name="196" href="#196">196</a> <em class="jxr_javadoccomment">     * it supports UnrecognizedElementParser.</em>
<a name="197" href="#197">197</a> <em class="jxr_javadoccomment">     * @since 1.2.15</em>
<a name="198" href="#198">198</a> <em class="jxr_javadoccomment">     * @param instance instance, may be null.</em>
<a name="199" href="#199">199</a> <em class="jxr_javadoccomment">     * @param element element, may not be null.</em>
<a name="200" href="#200">200</a> <em class="jxr_javadoccomment">     * @param props properties</em>
<a name="201" href="#201">201</a> <em class="jxr_javadoccomment">     * @throws IOException thrown if configuration of owner object</em>
<a name="202" href="#202">202</a> <em class="jxr_javadoccomment">     * should be abandoned.</em>
<a name="203" href="#203">203</a> <em class="jxr_javadoccomment">     */</em>
<a name="204" href="#204">204</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> parseUnrecognizedElement(<strong class="jxr_keyword">final</strong> Object instance,
<a name="205" href="#205">205</a>                                         <strong class="jxr_keyword">final</strong> Element element,
<a name="206" href="#206">206</a>                                         <strong class="jxr_keyword">final</strong> Properties props) <strong class="jxr_keyword">throws</strong> Exception {
<a name="207" href="#207">207</a>       <strong class="jxr_keyword">boolean</strong> recognized = false;
<a name="208" href="#208">208</a>       <strong class="jxr_keyword">if</strong> (instance instanceof UnrecognizedElementHandler) {
<a name="209" href="#209">209</a>           recognized = ((UnrecognizedElementHandler) instance).parseUnrecognizedElement(
<a name="210" href="#210">210</a>                   element, props);
<a name="211" href="#211">211</a>       }
<a name="212" href="#212">212</a>       <strong class="jxr_keyword">if</strong> (!recognized) {
<a name="213" href="#213">213</a>           LogLog.warn(<span class="jxr_string">"Unrecognized element "</span> + element.getNodeName());
<a name="214" href="#214">214</a>       }
<a name="215" href="#215">215</a>   }
<a name="216" href="#216">216</a> 
<a name="217" href="#217">217</a>     <em class="jxr_javadoccomment">/**</em>
<a name="218" href="#218">218</a> <em class="jxr_javadoccomment">      * Delegates unrecognized content to created instance if</em>
<a name="219" href="#219">219</a> <em class="jxr_javadoccomment">      * it supports UnrecognizedElementParser and catches and</em>
<a name="220" href="#220">220</a> <em class="jxr_javadoccomment">     *  logs any exception.</em>
<a name="221" href="#221">221</a> <em class="jxr_javadoccomment">      * @since 1.2.15</em>
<a name="222" href="#222">222</a> <em class="jxr_javadoccomment">      * @param instance instance, may be null.</em>
<a name="223" href="#223">223</a> <em class="jxr_javadoccomment">      * @param element element, may not be null.</em>
<a name="224" href="#224">224</a> <em class="jxr_javadoccomment">      * @param props properties</em>
<a name="225" href="#225">225</a> <em class="jxr_javadoccomment">      */</em>
<a name="226" href="#226">226</a>    <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> quietParseUnrecognizedElement(<strong class="jxr_keyword">final</strong> Object instance,
<a name="227" href="#227">227</a>                                           <strong class="jxr_keyword">final</strong> Element element,
<a name="228" href="#228">228</a>                                           <strong class="jxr_keyword">final</strong> Properties props) {
<a name="229" href="#229">229</a>       <strong class="jxr_keyword">try</strong> {
<a name="230" href="#230">230</a>           parseUnrecognizedElement(instance, element, props);
<a name="231" href="#231">231</a>       } <strong class="jxr_keyword">catch</strong> (Exception ex) {
<a name="232" href="#232">232</a>           <strong class="jxr_keyword">if</strong> (ex instanceof InterruptedException || ex instanceof InterruptedIOException) {
<a name="233" href="#233">233</a>               Thread.currentThread().interrupt();
<a name="234" href="#234">234</a>           }
<a name="235" href="#235">235</a>           LogLog.error(<span class="jxr_string">"Error in extension content: "</span>, ex);
<a name="236" href="#236">236</a>       }
<a name="237" href="#237">237</a>   }
<a name="238" href="#238">238</a> 
<a name="239" href="#239">239</a>   <em class="jxr_javadoccomment">/**</em>
<a name="240" href="#240">240</a> <em class="jxr_javadoccomment">     Used internally to parse an appender element.</em>
<a name="241" href="#241">241</a> <em class="jxr_javadoccomment">   */</em>
<a name="242" href="#242">242</a>   <strong class="jxr_keyword">protected</strong>
<a name="243" href="#243">243</a>   <a href="../../../../org/apache/log4j/Appender.html">Appender</a> parseAppender (Element appenderElement) {
<a name="244" href="#244">244</a>     String className = subst(appenderElement.getAttribute(CLASS_ATTR));
<a name="245" href="#245">245</a>     LogLog.debug(<span class="jxr_string">"Class name: ["</span> + className+']');    
<a name="246" href="#246">246</a>     <strong class="jxr_keyword">try</strong> {
<a name="247" href="#247">247</a>       Object instance 	= Loader.loadClass(className).newInstance();
<a name="248" href="#248">248</a>       <a href="../../../../org/apache/log4j/Appender.html">Appender</a> appender	= (Appender)instance;
<a name="249" href="#249">249</a>       <a href="../../../../org/apache/log4j/config/PropertySetter.html">PropertySetter</a> propSetter = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/config/PropertySetter.html">PropertySetter</a>(appender);
<a name="250" href="#250">250</a> 
<a name="251" href="#251">251</a>       appender.setName(subst(appenderElement.getAttribute(NAME_ATTR)));
<a name="252" href="#252">252</a>       
<a name="253" href="#253">253</a>       NodeList children	= appenderElement.getChildNodes();
<a name="254" href="#254">254</a>       <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> length 	= children.getLength();
<a name="255" href="#255">255</a> 
<a name="256" href="#256">256</a>       <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> loop = 0; loop &lt; length; loop++) {
<a name="257" href="#257">257</a> 	Node currentNode = children.item(loop);
<a name="258" href="#258">258</a> 
<a name="259" href="#259">259</a> 	<em class="jxr_comment">/*<em class="jxr_comment"> We're only interested in Elements */</em></em>
<a name="260" href="#260">260</a> 	<strong class="jxr_keyword">if</strong> (currentNode.getNodeType() == Node.ELEMENT_NODE) {
<a name="261" href="#261">261</a> 	  Element currentElement = (Element)currentNode;
<a name="262" href="#262">262</a> 
<a name="263" href="#263">263</a> 	  <em class="jxr_comment">// Parse appender parameters </em>
<a name="264" href="#264">264</a> 	  <strong class="jxr_keyword">if</strong> (currentElement.getTagName().equals(PARAM_TAG)) {
<a name="265" href="#265">265</a>             setParameter(currentElement, propSetter);
<a name="266" href="#266">266</a> 	  }
<a name="267" href="#267">267</a> 	  <em class="jxr_comment">// Set appender layout</em>
<a name="268" href="#268">268</a> 	  <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (currentElement.getTagName().equals(LAYOUT_TAG)) {
<a name="269" href="#269">269</a> 	    appender.setLayout(parseLayout(currentElement));
<a name="270" href="#270">270</a> 	  }
<a name="271" href="#271">271</a> 	  <em class="jxr_comment">// Add filters</em>
<a name="272" href="#272">272</a> 	  <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (currentElement.getTagName().equals(FILTER_TAG)) {
<a name="273" href="#273">273</a> 	    parseFilters(currentElement, appender);
<a name="274" href="#274">274</a> 	  }
<a name="275" href="#275">275</a> 	  <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (currentElement.getTagName().equals(ERROR_HANDLER_TAG)) {
<a name="276" href="#276">276</a> 	    parseErrorHandler(currentElement, appender);
<a name="277" href="#277">277</a> 	  }
<a name="278" href="#278">278</a> 	  <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (currentElement.getTagName().equals(APPENDER_REF_TAG)) {
<a name="279" href="#279">279</a> 	    String refName = subst(currentElement.getAttribute(REF_ATTR));
<a name="280" href="#280">280</a> 	    <strong class="jxr_keyword">if</strong>(appender instanceof AppenderAttachable) {
<a name="281" href="#281">281</a> 	      AppenderAttachable aa = (AppenderAttachable) appender;
<a name="282" href="#282">282</a> 	      LogLog.debug(<span class="jxr_string">"Attaching appender named ["</span>+ refName+
<a name="283" href="#283">283</a> 			   <span class="jxr_string">"] to appender named ["</span>+ appender.getName()+<span class="jxr_string">"]."</span>);
<a name="284" href="#284">284</a> 	      aa.addAppender(findAppenderByReference(currentElement));
<a name="285" href="#285">285</a> 	    } <strong class="jxr_keyword">else</strong> {
<a name="286" href="#286">286</a> 	      LogLog.error(<span class="jxr_string">"Requesting attachment of appender named ["</span>+
<a name="287" href="#287">287</a> 			   refName+ <span class="jxr_string">"] to appender named ["</span>+ appender.getName()+
<a name="288" href="#288">288</a>                 <span class="jxr_string">"] which does not implement org.apache.log4j.spi.AppenderAttachable."</span>);
<a name="289" href="#289">289</a> 	    }
<a name="290" href="#290">290</a> 	  } <strong class="jxr_keyword">else</strong> {
<a name="291" href="#291">291</a>           parseUnrecognizedElement(instance, currentElement, props);
<a name="292" href="#292">292</a>       }
<a name="293" href="#293">293</a> 	}
<a name="294" href="#294">294</a>       }
<a name="295" href="#295">295</a>       propSetter.activate();
<a name="296" href="#296">296</a>       <strong class="jxr_keyword">return</strong> appender;
<a name="297" href="#297">297</a>     }
<a name="298" href="#298">298</a>     <em class="jxr_comment">/*<em class="jxr_comment"> Yes, it's ugly.  But all of these exceptions point to the same</em></em>
<a name="299" href="#299">299</a> <em class="jxr_comment">       problem: we can't create an Appender */</em>
<a name="300" href="#300">300</a>     <strong class="jxr_keyword">catch</strong> (Exception oops) {
<a name="301" href="#301">301</a>         <strong class="jxr_keyword">if</strong> (oops instanceof InterruptedException || oops instanceof InterruptedIOException) {
<a name="302" href="#302">302</a>             Thread.currentThread().interrupt();
<a name="303" href="#303">303</a>         }
<a name="304" href="#304">304</a>       LogLog.error(<span class="jxr_string">"Could not create an Appender. Reported error follows."</span>,
<a name="305" href="#305">305</a> 		   oops);
<a name="306" href="#306">306</a>       <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a name="307" href="#307">307</a>     }
<a name="308" href="#308">308</a>   }
<a name="309" href="#309">309</a> 
<a name="310" href="#310">310</a>   <em class="jxr_javadoccomment">/**</em>
<a name="311" href="#311">311</a> <em class="jxr_javadoccomment">     Used internally to parse an {@link ErrorHandler} element.</em>
<a name="312" href="#312">312</a> <em class="jxr_javadoccomment">   */</em>
<a name="313" href="#313">313</a>   <strong class="jxr_keyword">protected</strong>
<a name="314" href="#314">314</a>   <strong class="jxr_keyword">void</strong> parseErrorHandler(Element element, <a href="../../../../org/apache/log4j/Appender.html">Appender</a> appender) {
<a name="315" href="#315">315</a>     <a href="../../../../org/apache/log4j/spi/ErrorHandler.html">ErrorHandler</a> eh = (ErrorHandler) OptionConverter.instantiateByClassName(
<a name="316" href="#316">316</a>                                        subst(element.getAttribute(CLASS_ATTR)),
<a name="317" href="#317">317</a>                                        org.apache.log4j.spi.ErrorHandler.<strong class="jxr_keyword">class</strong>, 
<a name="318" href="#318">318</a>  				       <strong class="jxr_keyword">null</strong>);
<a name="319" href="#319">319</a>     
<a name="320" href="#320">320</a>     <strong class="jxr_keyword">if</strong>(eh != <strong class="jxr_keyword">null</strong>) {
<a name="321" href="#321">321</a>       eh.setAppender(appender);
<a name="322" href="#322">322</a> 
<a name="323" href="#323">323</a>       <a href="../../../../org/apache/log4j/config/PropertySetter.html">PropertySetter</a> propSetter = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/config/PropertySetter.html">PropertySetter</a>(eh);
<a name="324" href="#324">324</a>       NodeList children = element.getChildNodes();
<a name="325" href="#325">325</a>       <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> length 	= children.getLength();
<a name="326" href="#326">326</a> 
<a name="327" href="#327">327</a>       <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> loop = 0; loop &lt; length; loop++) {
<a name="328" href="#328">328</a> 	Node currentNode = children.item(loop);
<a name="329" href="#329">329</a> 	<strong class="jxr_keyword">if</strong> (currentNode.getNodeType() == Node.ELEMENT_NODE) {
<a name="330" href="#330">330</a> 	  Element currentElement = (Element) currentNode;
<a name="331" href="#331">331</a> 	  String tagName = currentElement.getTagName();
<a name="332" href="#332">332</a> 	  <strong class="jxr_keyword">if</strong>(tagName.equals(PARAM_TAG)) {
<a name="333" href="#333">333</a>             setParameter(currentElement, propSetter);
<a name="334" href="#334">334</a> 	  } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong>(tagName.equals(APPENDER_REF_TAG)) {
<a name="335" href="#335">335</a> 	    eh.setBackupAppender(findAppenderByReference(currentElement));
<a name="336" href="#336">336</a> 	  } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong>(tagName.equals(LOGGER_REF)) {
<a name="337" href="#337">337</a> 	    String loggerName = currentElement.getAttribute(REF_ATTR);	    
<a name="338" href="#338">338</a> 	    Logger logger = (catFactory == <strong class="jxr_keyword">null</strong>) ? repository.getLogger(loggerName)
<a name="339" href="#339">339</a>                 : repository.getLogger(loggerName, catFactory);
<a name="340" href="#340">340</a> 	    eh.setLogger(logger);
<a name="341" href="#341">341</a> 	  } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong>(tagName.equals(ROOT_REF)) {
<a name="342" href="#342">342</a> 	    Logger root = repository.getRootLogger();
<a name="343" href="#343">343</a> 	    eh.setLogger(root);
<a name="344" href="#344">344</a> 	  } <strong class="jxr_keyword">else</strong> {
<a name="345" href="#345">345</a>           quietParseUnrecognizedElement(eh, currentElement, props);
<a name="346" href="#346">346</a>       }
<a name="347" href="#347">347</a> 	}
<a name="348" href="#348">348</a>       }
<a name="349" href="#349">349</a>       propSetter.activate();
<a name="350" href="#350">350</a>       appender.setErrorHandler(eh);
<a name="351" href="#351">351</a>     }
<a name="352" href="#352">352</a>   }
<a name="353" href="#353">353</a>   
<a name="354" href="#354">354</a>   <em class="jxr_javadoccomment">/**</em>
<a name="355" href="#355">355</a> <em class="jxr_javadoccomment">     Used internally to parse a filter element.</em>
<a name="356" href="#356">356</a> <em class="jxr_javadoccomment">   */</em>
<a name="357" href="#357">357</a>   <strong class="jxr_keyword">protected</strong>
<a name="358" href="#358">358</a>   <strong class="jxr_keyword">void</strong> parseFilters(Element element, <a href="../../../../org/apache/log4j/Appender.html">Appender</a> appender) {
<a name="359" href="#359">359</a>     String clazz = subst(element.getAttribute(CLASS_ATTR));
<a name="360" href="#360">360</a>     <a href="../../../../org/apache/log4j/spi/Filter.html">Filter</a> filter = (Filter) OptionConverter.instantiateByClassName(clazz,
<a name="361" href="#361">361</a>                                                 Filter.<strong class="jxr_keyword">class</strong>, <strong class="jxr_keyword">null</strong>);
<a name="362" href="#362">362</a>     
<a name="363" href="#363">363</a>     <strong class="jxr_keyword">if</strong>(filter != <strong class="jxr_keyword">null</strong>) {
<a name="364" href="#364">364</a>       <a href="../../../../org/apache/log4j/config/PropertySetter.html">PropertySetter</a> propSetter = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/config/PropertySetter.html">PropertySetter</a>(filter);
<a name="365" href="#365">365</a>       NodeList children = element.getChildNodes();
<a name="366" href="#366">366</a>       <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> length 	= children.getLength();
<a name="367" href="#367">367</a> 
<a name="368" href="#368">368</a>       <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> loop = 0; loop &lt; length; loop++) {
<a name="369" href="#369">369</a> 	Node currentNode = children.item(loop);
<a name="370" href="#370">370</a> 	<strong class="jxr_keyword">if</strong> (currentNode.getNodeType() == Node.ELEMENT_NODE) {
<a name="371" href="#371">371</a> 	  Element currentElement = (Element) currentNode;
<a name="372" href="#372">372</a> 	  String tagName = currentElement.getTagName();
<a name="373" href="#373">373</a> 	  <strong class="jxr_keyword">if</strong>(tagName.equals(PARAM_TAG)) {
<a name="374" href="#374">374</a>             setParameter(currentElement, propSetter);
<a name="375" href="#375">375</a> 	  } <strong class="jxr_keyword">else</strong> {
<a name="376" href="#376">376</a>             quietParseUnrecognizedElement(filter, currentElement, props);
<a name="377" href="#377">377</a>       }
<a name="378" href="#378">378</a> 	}
<a name="379" href="#379">379</a>       }
<a name="380" href="#380">380</a>       propSetter.activate();
<a name="381" href="#381">381</a>       LogLog.debug(<span class="jxr_string">"Adding filter of type ["</span>+filter.getClass()
<a name="382" href="#382">382</a> 		   +<span class="jxr_string">"] to appender named ["</span>+appender.getName()+<span class="jxr_string">"]."</span>);
<a name="383" href="#383">383</a>       appender.addFilter(filter);
<a name="384" href="#384">384</a>     }    
<a name="385" href="#385">385</a>   }
<a name="386" href="#386">386</a>   
<a name="387" href="#387">387</a>   <em class="jxr_javadoccomment">/**</em>
<a name="388" href="#388">388</a> <em class="jxr_javadoccomment">     Used internally to parse an category element.</em>
<a name="389" href="#389">389</a> <em class="jxr_javadoccomment">  */</em>
<a name="390" href="#390">390</a>   <strong class="jxr_keyword">protected</strong>
<a name="391" href="#391">391</a>   <strong class="jxr_keyword">void</strong> parseCategory (Element loggerElement) {
<a name="392" href="#392">392</a>     <em class="jxr_comment">// Create a new org.apache.log4j.Category object from the &lt;category&gt; element.</em>
<a name="393" href="#393">393</a>     String catName = subst(loggerElement.getAttribute(NAME_ATTR));
<a name="394" href="#394">394</a> 
<a name="395" href="#395">395</a>     <a href="../../../../org/apache/log4j/Logger.html">Logger</a> cat;    
<a name="396" href="#396">396</a> 
<a name="397" href="#397">397</a>     String className = subst(loggerElement.getAttribute(CLASS_ATTR));
<a name="398" href="#398">398</a> 
<a name="399" href="#399">399</a> 
<a name="400" href="#400">400</a>     <strong class="jxr_keyword">if</strong>(EMPTY_STR.equals(className)) {
<a name="401" href="#401">401</a>       LogLog.debug(<span class="jxr_string">"Retreiving an instance of org.apache.log4j.Logger."</span>);
<a name="402" href="#402">402</a>       cat = (catFactory == <strong class="jxr_keyword">null</strong>) ? repository.getLogger(catName) : repository.getLogger(catName, catFactory);
<a name="403" href="#403">403</a>     }
<a name="404" href="#404">404</a>     <strong class="jxr_keyword">else</strong> {
<a name="405" href="#405">405</a>       LogLog.debug(<span class="jxr_string">"Desired logger sub-class: ["</span>+className+']');
<a name="406" href="#406">406</a>        <strong class="jxr_keyword">try</strong> {	 
<a name="407" href="#407">407</a> 	 Class clazz = Loader.loadClass(className);
<a name="408" href="#408">408</a> 	 Method getInstanceMethod = clazz.getMethod(<span class="jxr_string">"getLogger"</span>, 
<a name="409" href="#409">409</a> 						    ONE_STRING_PARAM);
<a name="410" href="#410">410</a> 	 cat = (Logger) getInstanceMethod.invoke(<strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">new</strong> Object[] {catName});
<a name="411" href="#411">411</a>        } <strong class="jxr_keyword">catch</strong> (InvocationTargetException oops) {
<a name="412" href="#412">412</a>           <strong class="jxr_keyword">if</strong> (oops.getTargetException() instanceof InterruptedException
<a name="413" href="#413">413</a>                   || oops.getTargetException() instanceof InterruptedIOException) {
<a name="414" href="#414">414</a>               Thread.currentThread().interrupt();
<a name="415" href="#415">415</a>           }
<a name="416" href="#416">416</a>           LogLog.error(<span class="jxr_string">"Could not retrieve category ["</span>+catName+
<a name="417" href="#417">417</a> 		      <span class="jxr_string">"]. Reported error follows."</span>, oops);
<a name="418" href="#418">418</a> 	      <strong class="jxr_keyword">return</strong>;
<a name="419" href="#419">419</a>        } <strong class="jxr_keyword">catch</strong> (Exception oops) {
<a name="420" href="#420">420</a> 	      LogLog.error(<span class="jxr_string">"Could not retrieve category ["</span>+catName+
<a name="421" href="#421">421</a> 		      <span class="jxr_string">"]. Reported error follows."</span>, oops);
<a name="422" href="#422">422</a> 	      <strong class="jxr_keyword">return</strong>;
<a name="423" href="#423">423</a>        }
<a name="424" href="#424">424</a>     }
<a name="425" href="#425">425</a> 
<a name="426" href="#426">426</a>     <em class="jxr_comment">// Setting up a category needs to be an atomic operation, in order</em>
<a name="427" href="#427">427</a>     <em class="jxr_comment">// to protect potential log operations while category</em>
<a name="428" href="#428">428</a>     <em class="jxr_comment">// configuration is in progress.</em>
<a name="429" href="#429">429</a>     <strong class="jxr_keyword">synchronized</strong>(cat) {
<a name="430" href="#430">430</a>       <strong class="jxr_keyword">boolean</strong> additivity = OptionConverter.toBoolean(
<a name="431" href="#431">431</a>                            subst(loggerElement.getAttribute(ADDITIVITY_ATTR)),
<a name="432" href="#432">432</a> 			   <strong class="jxr_keyword">true</strong>);
<a name="433" href="#433">433</a>     
<a name="434" href="#434">434</a>       LogLog.debug(<span class="jxr_string">"Setting ["</span>+cat.getName()+<span class="jxr_string">"] additivity to ["</span>+additivity+<span class="jxr_string">"]."</span>);
<a name="435" href="#435">435</a>       cat.setAdditivity(additivity);
<a name="436" href="#436">436</a>       parseChildrenOfLoggerElement(loggerElement, cat, false);
<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> 
<a name="441" href="#441">441</a>   <em class="jxr_javadoccomment">/**</em>
<a name="442" href="#442">442</a> <em class="jxr_javadoccomment">     Used internally to parse the category factory element.</em>
<a name="443" href="#443">443</a> <em class="jxr_javadoccomment">  */</em>
<a name="444" href="#444">444</a>   <strong class="jxr_keyword">protected</strong>
<a name="445" href="#445">445</a>   <strong class="jxr_keyword">void</strong> parseCategoryFactory(Element factoryElement) {
<a name="446" href="#446">446</a>     String className = subst(factoryElement.getAttribute(CLASS_ATTR));
<a name="447" href="#447">447</a> 
<a name="448" href="#448">448</a>     <strong class="jxr_keyword">if</strong>(EMPTY_STR.equals(className)) {
<a name="449" href="#449">449</a>       LogLog.error(<span class="jxr_string">"Category Factory tag "</span> + CLASS_ATTR + <span class="jxr_string">" attribute not found."</span>);
<a name="450" href="#450">450</a>       LogLog.debug(<span class="jxr_string">"No Category Factory configured."</span>);
<a name="451" href="#451">451</a>     }
<a name="452" href="#452">452</a>     <strong class="jxr_keyword">else</strong> {
<a name="453" href="#453">453</a>       LogLog.debug(<span class="jxr_string">"Desired category factory: ["</span>+className+']');
<a name="454" href="#454">454</a>       Object factory = OptionConverter.instantiateByClassName(className,
<a name="455" href="#455">455</a>                                                                  LoggerFactory.<strong class="jxr_keyword">class</strong>, 
<a name="456" href="#456">456</a>                                                                  <strong class="jxr_keyword">null</strong>);
<a name="457" href="#457">457</a>       <strong class="jxr_keyword">if</strong> (factory instanceof LoggerFactory) {
<a name="458" href="#458">458</a>           catFactory = (LoggerFactory) factory;
<a name="459" href="#459">459</a>       } <strong class="jxr_keyword">else</strong> {
<a name="460" href="#460">460</a>           LogLog.error(<span class="jxr_string">"Category Factory class "</span> + className + <span class="jxr_string">" does not implement org.apache.log4j.LoggerFactory"</span>);
<a name="461" href="#461">461</a>       }
<a name="462" href="#462">462</a>       <a href="../../../../org/apache/log4j/config/PropertySetter.html">PropertySetter</a> propSetter = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/config/PropertySetter.html">PropertySetter</a>(factory);
<a name="463" href="#463">463</a> 
<a name="464" href="#464">464</a>       Element  currentElement = <strong class="jxr_keyword">null</strong>;
<a name="465" href="#465">465</a>       Node     currentNode    = <strong class="jxr_keyword">null</strong>;
<a name="466" href="#466">466</a>       NodeList children       = factoryElement.getChildNodes();
<a name="467" href="#467">467</a>       <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> length        = children.getLength();
<a name="468" href="#468">468</a> 
<a name="469" href="#469">469</a>       <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> loop=0; loop &lt; length; loop++) {
<a name="470" href="#470">470</a>         currentNode = children.item(loop);
<a name="471" href="#471">471</a> 	<strong class="jxr_keyword">if</strong> (currentNode.getNodeType() == Node.ELEMENT_NODE) {
<a name="472" href="#472">472</a> 	  currentElement = (Element)currentNode;
<a name="473" href="#473">473</a> 	  <strong class="jxr_keyword">if</strong> (currentElement.getTagName().equals(PARAM_TAG)) {
<a name="474" href="#474">474</a> 	    setParameter(currentElement, propSetter);
<a name="475" href="#475">475</a> 	  } <strong class="jxr_keyword">else</strong> {
<a name="476" href="#476">476</a>            quietParseUnrecognizedElement(factory, currentElement, props);
<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>   }
<a name="482" href="#482">482</a> 
<a name="483" href="#483">483</a> 
<a name="484" href="#484">484</a>   <em class="jxr_javadoccomment">/**</em>
<a name="485" href="#485">485</a> <em class="jxr_javadoccomment">     Used internally to parse the roor category element.</em>
<a name="486" href="#486">486</a> <em class="jxr_javadoccomment">  */</em>
<a name="487" href="#487">487</a>   <strong class="jxr_keyword">protected</strong>
<a name="488" href="#488">488</a>   <strong class="jxr_keyword">void</strong> parseRoot (Element rootElement) {
<a name="489" href="#489">489</a>     <a href="../../../../org/apache/log4j/Logger.html">Logger</a> root = repository.getRootLogger();
<a name="490" href="#490">490</a>     <em class="jxr_comment">// category configuration needs to be atomic</em>
<a name="491" href="#491">491</a>     <strong class="jxr_keyword">synchronized</strong>(root) {    
<a name="492" href="#492">492</a>       parseChildrenOfLoggerElement(rootElement, root, <strong class="jxr_keyword">true</strong>);
<a name="493" href="#493">493</a>     }
<a name="494" href="#494">494</a>   }
<a name="495" href="#495">495</a> 
<a name="496" href="#496">496</a> 
<a name="497" href="#497">497</a>   <em class="jxr_javadoccomment">/**</em>
<a name="498" href="#498">498</a> <em class="jxr_javadoccomment">     Used internally to parse the children of a category element.</em>
<a name="499" href="#499">499</a> <em class="jxr_javadoccomment">  */</em>
<a name="500" href="#500">500</a>   <strong class="jxr_keyword">protected</strong>
<a name="501" href="#501">501</a>   <strong class="jxr_keyword">void</strong> parseChildrenOfLoggerElement(Element catElement,
<a name="502" href="#502">502</a> 				      Logger cat, <strong class="jxr_keyword">boolean</strong> isRoot) {
<a name="503" href="#503">503</a>     
<a name="504" href="#504">504</a>     <a href="../../../../org/apache/log4j/config/PropertySetter.html">PropertySetter</a> propSetter = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/config/PropertySetter.html">PropertySetter</a>(cat);
<a name="505" href="#505">505</a>     
<a name="506" href="#506">506</a>     <em class="jxr_comment">// Remove all existing appenders from cat. They will be</em>
<a name="507" href="#507">507</a>     <em class="jxr_comment">// reconstructed if need be.</em>
<a name="508" href="#508">508</a>     cat.removeAllAppenders();
<a name="509" href="#509">509</a> 
<a name="510" href="#510">510</a> 
<a name="511" href="#511">511</a>     NodeList children 	= catElement.getChildNodes();
<a name="512" href="#512">512</a>     <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> length 	= children.getLength();
<a name="513" href="#513">513</a>     
<a name="514" href="#514">514</a>     <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> loop = 0; loop &lt; length; loop++) {
<a name="515" href="#515">515</a>       Node currentNode = children.item(loop);
<a name="516" href="#516">516</a> 
<a name="517" href="#517">517</a>       <strong class="jxr_keyword">if</strong> (currentNode.getNodeType() == Node.ELEMENT_NODE) {
<a name="518" href="#518">518</a> 	Element currentElement = (Element) currentNode;
<a name="519" href="#519">519</a> 	String tagName = currentElement.getTagName();
<a name="520" href="#520">520</a> 	
<a name="521" href="#521">521</a> 	<strong class="jxr_keyword">if</strong> (tagName.equals(APPENDER_REF_TAG)) {
<a name="522" href="#522">522</a> 	  Element appenderRef = (Element) currentNode;
<a name="523" href="#523">523</a> 	  Appender appender = findAppenderByReference(appenderRef);
<a name="524" href="#524">524</a> 	  String refName =  subst(appenderRef.getAttribute(REF_ATTR));
<a name="525" href="#525">525</a> 	  <strong class="jxr_keyword">if</strong>(appender != <strong class="jxr_keyword">null</strong>)
<a name="526" href="#526">526</a> 	    LogLog.debug(<span class="jxr_string">"Adding appender named ["</span>+ refName+ 
<a name="527" href="#527">527</a> 			 <span class="jxr_string">"] to category ["</span>+cat.getName()+<span class="jxr_string">"]."</span>);
<a name="528" href="#528">528</a> 	  <strong class="jxr_keyword">else</strong> 
<a name="529" href="#529">529</a> 	    LogLog.debug(<span class="jxr_string">"Appender named ["</span>+ refName + <span class="jxr_string">"] not found."</span>);
<a name="530" href="#530">530</a> 	    
<a name="531" href="#531">531</a> 	  cat.addAppender(appender);
<a name="532" href="#532">532</a> 	  
<a name="533" href="#533">533</a> 	} <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong>(tagName.equals(LEVEL_TAG)) {
<a name="534" href="#534">534</a> 	  parseLevel(currentElement, cat, isRoot);	
<a name="535" href="#535">535</a> 	} <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong>(tagName.equals(PRIORITY_TAG)) {
<a name="536" href="#536">536</a> 	  parseLevel(currentElement, cat, isRoot);
<a name="537" href="#537">537</a> 	} <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong>(tagName.equals(PARAM_TAG)) {
<a name="538" href="#538">538</a>           setParameter(currentElement, propSetter);
<a name="539" href="#539">539</a> 	} <strong class="jxr_keyword">else</strong> {
<a name="540" href="#540">540</a>         quietParseUnrecognizedElement(cat, currentElement, props);
<a name="541" href="#541">541</a>     }
<a name="542" href="#542">542</a>       }
<a name="543" href="#543">543</a>     }
<a name="544" href="#544">544</a>     propSetter.activate();
<a name="545" href="#545">545</a>   }
<a name="546" href="#546">546</a> 
<a name="547" href="#547">547</a>   <em class="jxr_javadoccomment">/**</em>
<a name="548" href="#548">548</a> <em class="jxr_javadoccomment">     Used internally to parse a layout element.</em>
<a name="549" href="#549">549</a> <em class="jxr_javadoccomment">  */</em>  
<a name="550" href="#550">550</a>   <strong class="jxr_keyword">protected</strong>
<a name="551" href="#551">551</a>   <a href="../../../../org/apache/log4j/Layout.html">Layout</a> parseLayout (Element layout_element) {
<a name="552" href="#552">552</a>     String className = subst(layout_element.getAttribute(CLASS_ATTR));
<a name="553" href="#553">553</a>     LogLog.debug(<span class="jxr_string">"Parsing layout of class: \&quot;"</span>+className+<span class="jxr_string">"\&quot;"</span>);		 
<a name="554" href="#554">554</a>     <strong class="jxr_keyword">try</strong> {
<a name="555" href="#555">555</a>       Object instance 	= Loader.loadClass(className).newInstance();
<a name="556" href="#556">556</a>       <a href="../../../../org/apache/log4j/Layout.html">Layout</a> layout   	= (Layout)instance;
<a name="557" href="#557">557</a>       <a href="../../../../org/apache/log4j/config/PropertySetter.html">PropertySetter</a> propSetter = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/config/PropertySetter.html">PropertySetter</a>(layout);
<a name="558" href="#558">558</a>       
<a name="559" href="#559">559</a>       NodeList params 	= layout_element.getChildNodes();
<a name="560" href="#560">560</a>       <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> length 	= params.getLength();
<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> loop = 0; loop &lt; length; loop++) {
<a name="563" href="#563">563</a> 	Node currentNode = (Node)params.item(loop);
<a name="564" href="#564">564</a> 	<strong class="jxr_keyword">if</strong> (currentNode.getNodeType() == Node.ELEMENT_NODE) {
<a name="565" href="#565">565</a> 	  Element currentElement = (Element) currentNode;
<a name="566" href="#566">566</a> 	  String tagName = currentElement.getTagName();
<a name="567" href="#567">567</a> 	  <strong class="jxr_keyword">if</strong>(tagName.equals(PARAM_TAG)) {
<a name="568" href="#568">568</a>             setParameter(currentElement, propSetter);
<a name="569" href="#569">569</a> 	  } <strong class="jxr_keyword">else</strong> {
<a name="570" href="#570">570</a>           parseUnrecognizedElement(instance, currentElement, props);
<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>       propSetter.activate();
<a name="576" href="#576">576</a>       <strong class="jxr_keyword">return</strong> layout;
<a name="577" href="#577">577</a>     }
<a name="578" href="#578">578</a>     <strong class="jxr_keyword">catch</strong> (Exception oops) {
<a name="579" href="#579">579</a>         <strong class="jxr_keyword">if</strong> (oops instanceof InterruptedException || oops instanceof InterruptedIOException) {
<a name="580" href="#580">580</a>             Thread.currentThread().interrupt();
<a name="581" href="#581">581</a>         }
<a name="582" href="#582">582</a>       LogLog.error(<span class="jxr_string">"Could not create the Layout. Reported error follows."</span>,
<a name="583" href="#583">583</a> 		   oops);
<a name="584" href="#584">584</a>       <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a name="585" href="#585">585</a>     }
<a name="586" href="#586">586</a>   }
<a name="587" href="#587">587</a> 
<a name="588" href="#588">588</a>   <strong class="jxr_keyword">protected</strong> 
<a name="589" href="#589">589</a>   <strong class="jxr_keyword">void</strong> parseRenderer(Element element) {
<a name="590" href="#590">590</a>     String renderingClass = subst(element.getAttribute(RENDERING_CLASS_ATTR));
<a name="591" href="#591">591</a>     String renderedClass = subst(element.getAttribute(RENDERED_CLASS_ATTR));
<a name="592" href="#592">592</a>     <strong class="jxr_keyword">if</strong>(repository instanceof <a href="../../../../org/apache/log4j/spi/RendererSupport.html">RendererSupport</a>) {
<a name="593" href="#593">593</a>       RendererMap.addRenderer((RendererSupport) repository, renderedClass, 
<a name="594" href="#594">594</a> 			      renderingClass);
<a name="595" href="#595">595</a>     }
<a name="596" href="#596">596</a>   }
<a name="597" href="#597">597</a> 
<a name="598" href="#598">598</a>     <em class="jxr_javadoccomment">/**</em>
<a name="599" href="#599">599</a> <em class="jxr_javadoccomment">     * Parses throwable renderer.</em>
<a name="600" href="#600">600</a> <em class="jxr_javadoccomment">     * @param element throwableRenderer element.</em>
<a name="601" href="#601">601</a> <em class="jxr_javadoccomment">     * @return configured throwable renderer.</em>
<a name="602" href="#602">602</a> <em class="jxr_javadoccomment">     * @since 1.2.16.</em>
<a name="603" href="#603">603</a> <em class="jxr_javadoccomment">     */</em>
<a name="604" href="#604">604</a>     <strong class="jxr_keyword">protected</strong> <a href="../../../../org/apache/log4j/spi/ThrowableRenderer.html">ThrowableRenderer</a> parseThrowableRenderer(<strong class="jxr_keyword">final</strong> Element element) {
<a name="605" href="#605">605</a>         String className = subst(element.getAttribute(CLASS_ATTR));
<a name="606" href="#606">606</a>         LogLog.debug(<span class="jxr_string">"Parsing throwableRenderer of class: \&quot;"</span>+className+<span class="jxr_string">"\&quot;"</span>);
<a name="607" href="#607">607</a>         <strong class="jxr_keyword">try</strong> {
<a name="608" href="#608">608</a>           Object instance 	= Loader.loadClass(className).newInstance();
<a name="609" href="#609">609</a>           <a href="../../../../org/apache/log4j/spi/ThrowableRenderer.html">ThrowableRenderer</a> tr   	= (ThrowableRenderer)instance;
<a name="610" href="#610">610</a>           <a href="../../../../org/apache/log4j/config/PropertySetter.html">PropertySetter</a> propSetter = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/config/PropertySetter.html">PropertySetter</a>(tr);
<a name="611" href="#611">611</a> 
<a name="612" href="#612">612</a>           NodeList params 	= element.getChildNodes();
<a name="613" href="#613">613</a>           <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> length 	= params.getLength();
<a name="614" href="#614">614</a> 
<a name="615" href="#615">615</a>           <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> loop = 0; loop &lt; length; loop++) {
<a name="616" href="#616">616</a>                 Node currentNode = (Node)params.item(loop);
<a name="617" href="#617">617</a>                 <strong class="jxr_keyword">if</strong> (currentNode.getNodeType() == Node.ELEMENT_NODE) {
<a name="618" href="#618">618</a>                     Element currentElement = (Element) currentNode;
<a name="619" href="#619">619</a>                     String tagName = currentElement.getTagName();
<a name="620" href="#620">620</a>                     <strong class="jxr_keyword">if</strong>(tagName.equals(PARAM_TAG)) {
<a name="621" href="#621">621</a>                         setParameter(currentElement, propSetter);
<a name="622" href="#622">622</a>                     } <strong class="jxr_keyword">else</strong> {
<a name="623" href="#623">623</a>                         parseUnrecognizedElement(instance, currentElement, props);
<a name="624" href="#624">624</a>                     }
<a name="625" href="#625">625</a>                 }
<a name="626" href="#626">626</a>           }
<a name="627" href="#627">627</a> 
<a name="628" href="#628">628</a>           propSetter.activate();
<a name="629" href="#629">629</a>           <strong class="jxr_keyword">return</strong> tr;
<a name="630" href="#630">630</a>         }
<a name="631" href="#631">631</a>         <strong class="jxr_keyword">catch</strong> (Exception oops) {
<a name="632" href="#632">632</a>             <strong class="jxr_keyword">if</strong> (oops instanceof InterruptedException || oops instanceof InterruptedIOException) {
<a name="633" href="#633">633</a>                 Thread.currentThread().interrupt();
<a name="634" href="#634">634</a>             }
<a name="635" href="#635">635</a>             LogLog.error(<span class="jxr_string">"Could not create the ThrowableRenderer. Reported error follows."</span>,
<a name="636" href="#636">636</a>                oops);
<a name="637" href="#637">637</a>           <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a name="638" href="#638">638</a>         }
<a name="639" href="#639">639</a>     }
<a name="640" href="#640">640</a> 
<a name="641" href="#641">641</a>   <em class="jxr_javadoccomment">/**</em>
<a name="642" href="#642">642</a> <em class="jxr_javadoccomment">     Used internally to parse a level  element.</em>
<a name="643" href="#643">643</a> <em class="jxr_javadoccomment">  */</em>
<a name="644" href="#644">644</a>   <strong class="jxr_keyword">protected</strong>
<a name="645" href="#645">645</a>   <strong class="jxr_keyword">void</strong> parseLevel(Element element, <a href="../../../../org/apache/log4j/Logger.html">Logger</a> logger, <strong class="jxr_keyword">boolean</strong> isRoot) {
<a name="646" href="#646">646</a>     String catName = logger.getName();
<a name="647" href="#647">647</a>     <strong class="jxr_keyword">if</strong>(isRoot) {
<a name="648" href="#648">648</a>       catName = <span class="jxr_string">"root"</span>;
<a name="649" href="#649">649</a>     }
<a name="650" href="#650">650</a> 
<a name="651" href="#651">651</a>     String priStr = subst(element.getAttribute(VALUE_ATTR));
<a name="652" href="#652">652</a>     LogLog.debug(<span class="jxr_string">"Level value for "</span>+catName+<span class="jxr_string">" is  ["</span>+priStr+<span class="jxr_string">"]."</span>);
<a name="653" href="#653">653</a>     
<a name="654" href="#654">654</a>     <strong class="jxr_keyword">if</strong>(INHERITED.equalsIgnoreCase(priStr) || NULL.equalsIgnoreCase(priStr)) {
<a name="655" href="#655">655</a>       <strong class="jxr_keyword">if</strong>(isRoot) {
<a name="656" href="#656">656</a> 	LogLog.error(<span class="jxr_string">"Root level cannot be inherited. Ignoring directive."</span>);
<a name="657" href="#657">657</a>       } <strong class="jxr_keyword">else</strong> {
<a name="658" href="#658">658</a> 	logger.setLevel(<strong class="jxr_keyword">null</strong>);
<a name="659" href="#659">659</a>       }
<a name="660" href="#660">660</a>     } <strong class="jxr_keyword">else</strong> {
<a name="661" href="#661">661</a>       String className = subst(element.getAttribute(CLASS_ATTR));      
<a name="662" href="#662">662</a>       <strong class="jxr_keyword">if</strong>(EMPTY_STR.equals(className)) {	
<a name="663" href="#663">663</a> 	logger.setLevel(OptionConverter.toLevel(priStr, Level.DEBUG));
<a name="664" href="#664">664</a>       } <strong class="jxr_keyword">else</strong> {
<a name="665" href="#665">665</a> 	LogLog.debug(<span class="jxr_string">"Desired Level sub-class: ["</span>+className+']');
<a name="666" href="#666">666</a> 	<strong class="jxr_keyword">try</strong> {	 
<a name="667" href="#667">667</a> 	  Class clazz = Loader.loadClass(className);
<a name="668" href="#668">668</a> 	  Method toLevelMethod = clazz.getMethod(<span class="jxr_string">"toLevel"</span>, 
<a name="669" href="#669">669</a> 						    ONE_STRING_PARAM);
<a name="670" href="#670">670</a> 	  Level pri = (Level) toLevelMethod.invoke(<strong class="jxr_keyword">null</strong>, 
<a name="671" href="#671">671</a> 						    <strong class="jxr_keyword">new</strong> Object[] {priStr});
<a name="672" href="#672">672</a> 	  logger.setLevel(pri);
<a name="673" href="#673">673</a> 	} <strong class="jxr_keyword">catch</strong> (Exception oops) {
<a name="674" href="#674">674</a>         <strong class="jxr_keyword">if</strong> (oops instanceof InterruptedException || oops instanceof InterruptedIOException) {
<a name="675" href="#675">675</a>             Thread.currentThread().interrupt();
<a name="676" href="#676">676</a>         }
<a name="677" href="#677">677</a> 	  LogLog.error(<span class="jxr_string">"Could not create level ["</span>+priStr+
<a name="678" href="#678">678</a> 		       <span class="jxr_string">"]. Reported error follows."</span>, oops);
<a name="679" href="#679">679</a> 	  <strong class="jxr_keyword">return</strong>;
<a name="680" href="#680">680</a> 	}
<a name="681" href="#681">681</a>       }
<a name="682" href="#682">682</a>     }
<a name="683" href="#683">683</a>     LogLog.debug(catName + <span class="jxr_string">" level set to "</span> + logger.getLevel());    
<a name="684" href="#684">684</a>   }
<a name="685" href="#685">685</a> 
<a name="686" href="#686">686</a>   <strong class="jxr_keyword">protected</strong>
<a name="687" href="#687">687</a>   <strong class="jxr_keyword">void</strong> setParameter(Element elem, <a href="../../../../org/apache/log4j/config/PropertySetter.html">PropertySetter</a> propSetter) {
<a name="688" href="#688">688</a>       String name = subst(elem.getAttribute(NAME_ATTR));
<a name="689" href="#689">689</a>       String value = (elem.getAttribute(VALUE_ATTR));
<a name="690" href="#690">690</a>       value = subst(OptionConverter.convertSpecialChars(value));
<a name="691" href="#691">691</a>       propSetter.setProperty(name, value);
<a name="692" href="#692">692</a>   }
<a name="693" href="#693">693</a> 
<a name="694" href="#694">694</a> 
<a name="695" href="#695">695</a>   <em class="jxr_javadoccomment">/**</em>
<a name="696" href="#696">696</a> <em class="jxr_javadoccomment">     Configure log4j using a &lt;code&gt;configuration&lt;/code&gt; element as</em>
<a name="697" href="#697">697</a> <em class="jxr_javadoccomment">     defined in the log4j.dtd. </em>
<a name="698" href="#698">698</a> 
<a name="699" href="#699">699</a> <em class="jxr_javadoccomment">  */</em>
<a name="700" href="#700">700</a>   <strong class="jxr_keyword">static</strong>
<a name="701" href="#701">701</a>   <strong class="jxr_keyword">public</strong>
<a name="702" href="#702">702</a>   <strong class="jxr_keyword">void</strong> configure (Element element) {
<a name="703" href="#703">703</a>     <a href="../../../../org/apache/log4j/xml/DOMConfigurator.html">DOMConfigurator</a> configurator = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/xml/DOMConfigurator.html">DOMConfigurator</a>();
<a name="704" href="#704">704</a>     configurator.doConfigure(element,  LogManager.getLoggerRepository());
<a name="705" href="#705">705</a>   }
<a name="706" href="#706">706</a> 
<a name="707" href="#707">707</a>  <em class="jxr_javadoccomment">/**</em>
<a name="708" href="#708">708</a> <em class="jxr_javadoccomment">     Like {@link #configureAndWatch(String, long)} except that the</em>
<a name="709" href="#709">709</a> <em class="jxr_javadoccomment">     default delay as defined by {@link FileWatchdog#DEFAULT_DELAY} is</em>
<a name="710" href="#710">710</a> <em class="jxr_javadoccomment">     used. </em>
<a name="711" href="#711">711</a> 
<a name="712" href="#712">712</a> <em class="jxr_javadoccomment">     @param configFilename A log4j configuration file in XML format.</em>
<a name="713" href="#713">713</a> 
<a name="714" href="#714">714</a> <em class="jxr_javadoccomment">  */</em>
<a name="715" href="#715">715</a>   <strong class="jxr_keyword">static</strong>
<a name="716" href="#716">716</a>   <strong class="jxr_keyword">public</strong>
<a name="717" href="#717">717</a>   <strong class="jxr_keyword">void</strong> configureAndWatch(String configFilename) {
<a name="718" href="#718">718</a>     configureAndWatch(configFilename, FileWatchdog.DEFAULT_DELAY);
<a name="719" href="#719">719</a>   }
<a name="720" href="#720">720</a> 
<a name="721" href="#721">721</a>   <em class="jxr_javadoccomment">/**</em>
<a name="722" href="#722">722</a> <em class="jxr_javadoccomment">     Read the configuration file &lt;code&gt;configFilename&lt;/code&gt; if it</em>
<a name="723" href="#723">723</a> <em class="jxr_javadoccomment">     exists. Moreover, a thread will be created that will periodically</em>
<a name="724" href="#724">724</a> <em class="jxr_javadoccomment">     check if &lt;code&gt;configFilename&lt;/code&gt; has been created or</em>
<a name="725" href="#725">725</a> <em class="jxr_javadoccomment">     modified. The period is determined by the &lt;code&gt;delay&lt;/code&gt;</em>
<a name="726" href="#726">726</a> <em class="jxr_javadoccomment">     argument. If a change or file creation is detected, then</em>
<a name="727" href="#727">727</a> <em class="jxr_javadoccomment">     &lt;code&gt;configFilename&lt;/code&gt; is read to configure log4j.  </em>
<a name="728" href="#728">728</a> 
<a name="729" href="#729">729</a> <em class="jxr_javadoccomment">      @param configFilename A log4j configuration file in XML format.</em>
<a name="730" href="#730">730</a> <em class="jxr_javadoccomment">      @param delay The delay in milliseconds to wait between each check.</em>
<a name="731" href="#731">731</a> <em class="jxr_javadoccomment">  */</em>
<a name="732" href="#732">732</a>   <strong class="jxr_keyword">static</strong>
<a name="733" href="#733">733</a>   <strong class="jxr_keyword">public</strong>
<a name="734" href="#734">734</a>   <strong class="jxr_keyword">void</strong> configureAndWatch(String configFilename, <strong class="jxr_keyword">long</strong> delay) {
<a name="735" href="#735">735</a>     <a href="../../../../org/apache/log4j/xml/DOMConfigurator.html">XMLWatchdog</a> xdog = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/xml/DOMConfigurator.html">XMLWatchdog</a>(configFilename);
<a name="736" href="#736">736</a>     xdog.setDelay(delay);
<a name="737" href="#737">737</a>     xdog.start();
<a name="738" href="#738">738</a>   }
<a name="739" href="#739">739</a>   
<a name="740" href="#740">740</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">interface</strong> <a href="../../../../org/apache/log4j/xml/DOMConfigurator.html">ParseAction</a> {
<a name="741" href="#741">741</a>       Document parse(<strong class="jxr_keyword">final</strong> DocumentBuilder parser) <strong class="jxr_keyword">throws</strong> SAXException, IOException;
<a name="742" href="#742">742</a>   }
<a name="743" href="#743">743</a> 
<a name="744" href="#744">744</a> 
<a name="745" href="#745">745</a>   <strong class="jxr_keyword">public</strong>
<a name="746" href="#746">746</a>   <strong class="jxr_keyword">void</strong> doConfigure(<strong class="jxr_keyword">final</strong> String filename, <a href="../../../../org/apache/log4j/spi/LoggerRepository.html">LoggerRepository</a> repository) {
<a name="747" href="#747">747</a>     <a href="../../../../org/apache/log4j/xml/DOMConfigurator.html">ParseAction</a> action = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/xml/DOMConfigurator.html">ParseAction</a>() {
<a name="748" href="#748">748</a>           <strong class="jxr_keyword">public</strong> Document parse(<strong class="jxr_keyword">final</strong> DocumentBuilder parser) <strong class="jxr_keyword">throws</strong> SAXException, IOException {
<a name="749" href="#749">749</a>               <strong class="jxr_keyword">return</strong> parser.parse(<strong class="jxr_keyword">new</strong> File(filename));
<a name="750" href="#750">750</a>           }
<a name="751" href="#751">751</a>           <strong class="jxr_keyword">public</strong> String toString() { 
<a name="752" href="#752">752</a>               <strong class="jxr_keyword">return</strong> <span class="jxr_string">"file ["</span> + filename + <span class="jxr_string">"]"</span>; 
<a name="753" href="#753">753</a>           }
<a name="754" href="#754">754</a>     };
<a name="755" href="#755">755</a>     doConfigure(action, repository);
<a name="756" href="#756">756</a>   }
<a name="757" href="#757">757</a>   
<a name="758" href="#758">758</a> 
<a name="759" href="#759">759</a>   <strong class="jxr_keyword">public</strong>
<a name="760" href="#760">760</a>   <strong class="jxr_keyword">void</strong> doConfigure(<strong class="jxr_keyword">final</strong> URL url, <a href="../../../../org/apache/log4j/spi/LoggerRepository.html">LoggerRepository</a> repository) {
<a name="761" href="#761">761</a>       <a href="../../../../org/apache/log4j/xml/DOMConfigurator.html">ParseAction</a> action = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/xml/DOMConfigurator.html">ParseAction</a>() {
<a name="762" href="#762">762</a>           <strong class="jxr_keyword">public</strong> Document parse(<strong class="jxr_keyword">final</strong> DocumentBuilder parser) <strong class="jxr_keyword">throws</strong> SAXException, IOException {
<a name="763" href="#763">763</a>               URLConnection uConn = url.openConnection();
<a name="764" href="#764">764</a>               uConn.setUseCaches(false);
<a name="765" href="#765">765</a>               InputStream stream = uConn.getInputStream();
<a name="766" href="#766">766</a>               <strong class="jxr_keyword">try</strong> {
<a name="767" href="#767">767</a>                 InputSource src = <strong class="jxr_keyword">new</strong> InputSource(stream);
<a name="768" href="#768">768</a>                 src.setSystemId(url.toString());
<a name="769" href="#769">769</a>                 <strong class="jxr_keyword">return</strong> parser.parse(src);
<a name="770" href="#770">770</a>               } <strong class="jxr_keyword">finally</strong> {
<a name="771" href="#771">771</a>                 stream.close();
<a name="772" href="#772">772</a>               }
<a name="773" href="#773">773</a>           }
<a name="774" href="#774">774</a>           <strong class="jxr_keyword">public</strong> String toString() { 
<a name="775" href="#775">775</a>               <strong class="jxr_keyword">return</strong> <span class="jxr_string">"url ["</span> + url.toString() + <span class="jxr_string">"]"</span>; 
<a name="776" href="#776">776</a>           }
<a name="777" href="#777">777</a>       };
<a name="778" href="#778">778</a>       doConfigure(action, repository);
<a name="779" href="#779">779</a>   }
<a name="780" href="#780">780</a> 
<a name="781" href="#781">781</a>   <em class="jxr_javadoccomment">/**</em>
<a name="782" href="#782">782</a> <em class="jxr_javadoccomment">     Configure log4j by reading in a log4j.dtd compliant XML</em>
<a name="783" href="#783">783</a> <em class="jxr_javadoccomment">     configuration file.</em>
<a name="784" href="#784">784</a> 
<a name="785" href="#785">785</a> <em class="jxr_javadoccomment">  */</em>
<a name="786" href="#786">786</a>   <strong class="jxr_keyword">public</strong>
<a name="787" href="#787">787</a>   <strong class="jxr_keyword">void</strong> doConfigure(<strong class="jxr_keyword">final</strong> InputStream inputStream, <a href="../../../../org/apache/log4j/spi/LoggerRepository.html">LoggerRepository</a> repository) 
<a name="788" href="#788">788</a>                                           <strong class="jxr_keyword">throws</strong> FactoryConfigurationError {
<a name="789" href="#789">789</a>       <a href="../../../../org/apache/log4j/xml/DOMConfigurator.html">ParseAction</a> action = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/xml/DOMConfigurator.html">ParseAction</a>() {
<a name="790" href="#790">790</a>           <strong class="jxr_keyword">public</strong> Document parse(<strong class="jxr_keyword">final</strong> DocumentBuilder parser) <strong class="jxr_keyword">throws</strong> SAXException, IOException {
<a name="791" href="#791">791</a>               InputSource inputSource = <strong class="jxr_keyword">new</strong> InputSource(inputStream);
<a name="792" href="#792">792</a>               inputSource.setSystemId(<span class="jxr_string">"dummy://log4j.dtd"</span>);
<a name="793" href="#793">793</a>               <strong class="jxr_keyword">return</strong> parser.parse(inputSource);
<a name="794" href="#794">794</a>           }
<a name="795" href="#795">795</a>           <strong class="jxr_keyword">public</strong> String toString() { 
<a name="796" href="#796">796</a>               <strong class="jxr_keyword">return</strong> <span class="jxr_string">"input stream ["</span> + inputStream.toString() + <span class="jxr_string">"]"</span>; 
<a name="797" href="#797">797</a>           }
<a name="798" href="#798">798</a>       };
<a name="799" href="#799">799</a>       doConfigure(action, repository);
<a name="800" href="#800">800</a>   }
<a name="801" href="#801">801</a> 
<a name="802" href="#802">802</a>   <em class="jxr_javadoccomment">/**</em>
<a name="803" href="#803">803</a> <em class="jxr_javadoccomment">     Configure log4j by reading in a log4j.dtd compliant XML</em>
<a name="804" href="#804">804</a> <em class="jxr_javadoccomment">     configuration file.</em>
<a name="805" href="#805">805</a> 
<a name="806" href="#806">806</a> <em class="jxr_javadoccomment">  */</em>
<a name="807" href="#807">807</a>   <strong class="jxr_keyword">public</strong>
<a name="808" href="#808">808</a>   <strong class="jxr_keyword">void</strong> doConfigure(<strong class="jxr_keyword">final</strong> Reader reader, <a href="../../../../org/apache/log4j/spi/LoggerRepository.html">LoggerRepository</a> repository) 
<a name="809" href="#809">809</a>                                           <strong class="jxr_keyword">throws</strong> FactoryConfigurationError {
<a name="810" href="#810">810</a>       <a href="../../../../org/apache/log4j/xml/DOMConfigurator.html">ParseAction</a> action = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/xml/DOMConfigurator.html">ParseAction</a>() {
<a name="811" href="#811">811</a>           <strong class="jxr_keyword">public</strong> Document parse(<strong class="jxr_keyword">final</strong> DocumentBuilder parser) <strong class="jxr_keyword">throws</strong> SAXException, IOException {
<a name="812" href="#812">812</a>               InputSource inputSource = <strong class="jxr_keyword">new</strong> InputSource(reader);
<a name="813" href="#813">813</a>               inputSource.setSystemId(<span class="jxr_string">"dummy://log4j.dtd"</span>);
<a name="814" href="#814">814</a>               <strong class="jxr_keyword">return</strong> parser.parse(inputSource);
<a name="815" href="#815">815</a>           }
<a name="816" href="#816">816</a>           <strong class="jxr_keyword">public</strong> String toString() { 
<a name="817" href="#817">817</a>               <strong class="jxr_keyword">return</strong> <span class="jxr_string">"reader ["</span> + reader.toString() + <span class="jxr_string">"]"</span>; 
<a name="818" href="#818">818</a>           }
<a name="819" href="#819">819</a>       };
<a name="820" href="#820">820</a>     doConfigure(action, repository);
<a name="821" href="#821">821</a>   }
<a name="822" href="#822">822</a> 
<a name="823" href="#823">823</a>   <em class="jxr_javadoccomment">/**</em>
<a name="824" href="#824">824</a> <em class="jxr_javadoccomment">     Configure log4j by reading in a log4j.dtd compliant XML</em>
<a name="825" href="#825">825</a> <em class="jxr_javadoccomment">     configuration file.</em>
<a name="826" href="#826">826</a> 
<a name="827" href="#827">827</a> <em class="jxr_javadoccomment">  */</em>
<a name="828" href="#828">828</a>   <strong class="jxr_keyword">protected</strong>
<a name="829" href="#829">829</a>   <strong class="jxr_keyword">void</strong> doConfigure(<strong class="jxr_keyword">final</strong> InputSource inputSource, <a href="../../../../org/apache/log4j/spi/LoggerRepository.html">LoggerRepository</a> repository) 
<a name="830" href="#830">830</a>                                           <strong class="jxr_keyword">throws</strong> FactoryConfigurationError {
<a name="831" href="#831">831</a>       <strong class="jxr_keyword">if</strong> (inputSource.getSystemId() == <strong class="jxr_keyword">null</strong>) {
<a name="832" href="#832">832</a>           inputSource.setSystemId(<span class="jxr_string">"dummy://log4j.dtd"</span>);
<a name="833" href="#833">833</a>       }
<a name="834" href="#834">834</a>       <a href="../../../../org/apache/log4j/xml/DOMConfigurator.html">ParseAction</a> action = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/xml/DOMConfigurator.html">ParseAction</a>() {
<a name="835" href="#835">835</a>           <strong class="jxr_keyword">public</strong> Document parse(<strong class="jxr_keyword">final</strong> DocumentBuilder parser) <strong class="jxr_keyword">throws</strong> SAXException, IOException {
<a name="836" href="#836">836</a>               <strong class="jxr_keyword">return</strong> parser.parse(inputSource);
<a name="837" href="#837">837</a>           }
<a name="838" href="#838">838</a>           <strong class="jxr_keyword">public</strong> String toString() { 
<a name="839" href="#839">839</a>               <strong class="jxr_keyword">return</strong> <span class="jxr_string">"input source ["</span> + inputSource.toString() + <span class="jxr_string">"]"</span>; 
<a name="840" href="#840">840</a>           }
<a name="841" href="#841">841</a>       };
<a name="842" href="#842">842</a>       doConfigure(action, repository);
<a name="843" href="#843">843</a>     }
<a name="844" href="#844">844</a>     
<a name="845" href="#845">845</a>     
<a name="846" href="#846">846</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">void</strong> doConfigure(<strong class="jxr_keyword">final</strong> <a href="../../../../org/apache/log4j/xml/DOMConfigurator.html">ParseAction</a> action, <strong class="jxr_keyword">final</strong> <a href="../../../../org/apache/log4j/spi/LoggerRepository.html">LoggerRepository</a> repository)
<a name="847" href="#847">847</a>          <strong class="jxr_keyword">throws</strong> FactoryConfigurationError {
<a name="848" href="#848">848</a>     DocumentBuilderFactory dbf = <strong class="jxr_keyword">null</strong>;
<a name="849" href="#849">849</a>     <strong class="jxr_keyword">this</strong>.repository = repository;
<a name="850" href="#850">850</a>     <strong class="jxr_keyword">try</strong> { 
<a name="851" href="#851">851</a>       LogLog.debug(<span class="jxr_string">"System property is :"</span>+
<a name="852" href="#852">852</a>   	                        OptionConverter.getSystemProperty(dbfKey, 
<a name="853" href="#853">853</a> 								  <strong class="jxr_keyword">null</strong>)); 
<a name="854" href="#854">854</a>       dbf = DocumentBuilderFactory.newInstance();
<a name="855" href="#855">855</a>       LogLog.debug(<span class="jxr_string">"Standard DocumentBuilderFactory search succeded."</span>);
<a name="856" href="#856">856</a>       LogLog.debug(<span class="jxr_string">"DocumentBuilderFactory is: "</span>+dbf.getClass().getName());
<a name="857" href="#857">857</a>     } <strong class="jxr_keyword">catch</strong>(FactoryConfigurationError fce) {
<a name="858" href="#858">858</a>       Exception e = fce.getException();
<a name="859" href="#859">859</a>       LogLog.debug(<span class="jxr_string">"Could not instantiate a DocumentBuilderFactory."</span>, e);
<a name="860" href="#860">860</a>       <strong class="jxr_keyword">throw</strong> fce;
<a name="861" href="#861">861</a>     }
<a name="862" href="#862">862</a>       
<a name="863" href="#863">863</a>     <strong class="jxr_keyword">try</strong> {
<a name="864" href="#864">864</a>       dbf.setValidating(<strong class="jxr_keyword">true</strong>);
<a name="865" href="#865">865</a> 
<a name="866" href="#866">866</a>       DocumentBuilder docBuilder = dbf.newDocumentBuilder();
<a name="867" href="#867">867</a> 
<a name="868" href="#868">868</a>       docBuilder.setErrorHandler(<strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/xml/SAXErrorHandler.html">SAXErrorHandler</a>());      
<a name="869" href="#869">869</a>       docBuilder.setEntityResolver(<strong class="jxr_keyword">new</strong> Log4jEntityResolver());
<a name="870" href="#870">870</a>          
<a name="871" href="#871">871</a>       Document doc = action.parse(docBuilder);     
<a name="872" href="#872">872</a>       parse(doc.getDocumentElement());
<a name="873" href="#873">873</a>     } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a name="874" href="#874">874</a>         <strong class="jxr_keyword">if</strong> (e instanceof InterruptedException || e instanceof InterruptedIOException) {
<a name="875" href="#875">875</a>             Thread.currentThread().interrupt();
<a name="876" href="#876">876</a>         }
<a name="877" href="#877">877</a>       <em class="jxr_comment">// I know this is miserable...</em>
<a name="878" href="#878">878</a>       LogLog.error(<span class="jxr_string">"Could not parse "</span>+ action.toString() + <span class="jxr_string">"."</span>, e);
<a name="879" href="#879">879</a>     }
<a name="880" href="#880">880</a>   }
<a name="881" href="#881">881</a> 
<a name="882" href="#882">882</a>   <em class="jxr_javadoccomment">/**</em>
<a name="883" href="#883">883</a> <em class="jxr_javadoccomment">     Configure by taking in an DOM element. </em>
<a name="884" href="#884">884</a> <em class="jxr_javadoccomment">  */</em>
<a name="885" href="#885">885</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> doConfigure(Element element, <a href="../../../../org/apache/log4j/spi/LoggerRepository.html">LoggerRepository</a> repository) {
<a name="886" href="#886">886</a>     <strong class="jxr_keyword">this</strong>.repository = repository;
<a name="887" href="#887">887</a>     parse(element);
<a name="888" href="#888">888</a>   }
<a name="889" href="#889">889</a> 
<a name="890" href="#890">890</a>   
<a name="891" href="#891">891</a>   <em class="jxr_javadoccomment">/**</em>
<a name="892" href="#892">892</a> <em class="jxr_javadoccomment">     A static version of {@link #doConfigure(String, LoggerRepository)}.  */</em>
<a name="893" href="#893">893</a>   <strong class="jxr_keyword">static</strong>
<a name="894" href="#894">894</a>   <strong class="jxr_keyword">public</strong>
<a name="895" href="#895">895</a>   <strong class="jxr_keyword">void</strong> configure(String filename) <strong class="jxr_keyword">throws</strong> FactoryConfigurationError {
<a name="896" href="#896">896</a>     <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/xml/DOMConfigurator.html">DOMConfigurator</a>().doConfigure(filename, 
<a name="897" href="#897">897</a> 				      LogManager.getLoggerRepository());
<a name="898" href="#898">898</a>   }
<a name="899" href="#899">899</a> 
<a name="900" href="#900">900</a>   <em class="jxr_javadoccomment">/**</em>
<a name="901" href="#901">901</a> <em class="jxr_javadoccomment">     A static version of {@link #doConfigure(URL, LoggerRepository)}.</em>
<a name="902" href="#902">902</a> <em class="jxr_javadoccomment">   */</em>
<a name="903" href="#903">903</a>   <strong class="jxr_keyword">static</strong>
<a name="904" href="#904">904</a>   <strong class="jxr_keyword">public</strong>
<a name="905" href="#905">905</a>   <strong class="jxr_keyword">void</strong> configure(URL url) <strong class="jxr_keyword">throws</strong> FactoryConfigurationError {
<a name="906" href="#906">906</a>     <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/xml/DOMConfigurator.html">DOMConfigurator</a>().doConfigure(url, LogManager.getLoggerRepository());
<a name="907" href="#907">907</a>   }
<a name="908" href="#908">908</a> 
<a name="909" href="#909">909</a>   <em class="jxr_javadoccomment">/**</em>
<a name="910" href="#910">910</a> <em class="jxr_javadoccomment">     Used internally to configure the log4j framework by parsing a DOM</em>
<a name="911" href="#911">911</a> <em class="jxr_javadoccomment">     tree of XML elements based on &lt;a</em>
<a name="912" href="#912">912</a> <em class="jxr_javadoccomment">     href="doc-files/log4j.dtd"&gt;log4j.dtd&lt;/a&gt;.</em>
<a name="913" href="#913">913</a> <em class="jxr_javadoccomment">     </em>
<a name="914" href="#914">914</a> <em class="jxr_javadoccomment">  */</em>
<a name="915" href="#915">915</a>   <strong class="jxr_keyword">protected</strong>
<a name="916" href="#916">916</a>   <strong class="jxr_keyword">void</strong> parse(Element element) {
<a name="917" href="#917">917</a> 
<a name="918" href="#918">918</a>     String rootElementName = element.getTagName();
<a name="919" href="#919">919</a> 
<a name="920" href="#920">920</a>     <strong class="jxr_keyword">if</strong> (!rootElementName.equals(CONFIGURATION_TAG)) {
<a name="921" href="#921">921</a>       <strong class="jxr_keyword">if</strong>(rootElementName.equals(OLD_CONFIGURATION_TAG)) {
<a name="922" href="#922">922</a> 	LogLog.warn(<span class="jxr_string">"The &lt;"</span>+OLD_CONFIGURATION_TAG+
<a name="923" href="#923">923</a> 		     <span class="jxr_string">"&gt; element has been deprecated."</span>);
<a name="924" href="#924">924</a> 	LogLog.warn(<span class="jxr_string">"Use the &lt;"</span>+CONFIGURATION_TAG+<span class="jxr_string">"&gt; element instead."</span>);
<a name="925" href="#925">925</a>       } <strong class="jxr_keyword">else</strong> {
<a name="926" href="#926">926</a> 	LogLog.error(<span class="jxr_string">"DOM element is - not a &lt;"</span>+CONFIGURATION_TAG+<span class="jxr_string">"&gt; element."</span>);
<a name="927" href="#927">927</a> 	<strong class="jxr_keyword">return</strong>;
<a name="928" href="#928">928</a>       }
<a name="929" href="#929">929</a>     }
<a name="930" href="#930">930</a> 
<a name="931" href="#931">931</a> 
<a name="932" href="#932">932</a>     String debugAttrib = subst(element.getAttribute(INTERNAL_DEBUG_ATTR));
<a name="933" href="#933">933</a>       
<a name="934" href="#934">934</a>     LogLog.debug(<span class="jxr_string">"debug attribute= \&quot;"</span> + debugAttrib +<span class="jxr_string">"\&quot;."</span>);
<a name="935" href="#935">935</a>     <em class="jxr_comment">// if the log4j.dtd is not specified in the XML file, then the</em>
<a name="936" href="#936">936</a>     <em class="jxr_comment">// "debug" attribute is returned as the empty string.</em>
<a name="937" href="#937">937</a>     <strong class="jxr_keyword">if</strong>(!debugAttrib.equals(<span class="jxr_string">""</span>) &amp;&amp; !debugAttrib.equals(<span class="jxr_string">"null"</span>)) {      
<a name="938" href="#938">938</a>       LogLog.setInternalDebugging(OptionConverter.toBoolean(debugAttrib, <strong class="jxr_keyword">true</strong>));
<a name="939" href="#939">939</a>     } <strong class="jxr_keyword">else</strong> {
<a name="940" href="#940">940</a>       LogLog.debug(<span class="jxr_string">"Ignoring "</span> + INTERNAL_DEBUG_ATTR + <span class="jxr_string">" attribute."</span>);
<a name="941" href="#941">941</a>     }
<a name="942" href="#942">942</a> 
<a name="943" href="#943">943</a>       <em class="jxr_comment">//</em>
<a name="944" href="#944">944</a>       <em class="jxr_comment">//   reset repository before configuration if reset="true"</em>
<a name="945" href="#945">945</a>       <em class="jxr_comment">//       on configuration element.</em>
<a name="946" href="#946">946</a>       <em class="jxr_comment">//</em>
<a name="947" href="#947">947</a>     String resetAttrib = subst(element.getAttribute(RESET_ATTR));
<a name="948" href="#948">948</a>     LogLog.debug(<span class="jxr_string">"reset attribute= \&quot;"</span> + resetAttrib +<span class="jxr_string">"\&quot;."</span>);
<a name="949" href="#949">949</a>     <strong class="jxr_keyword">if</strong>(!(<span class="jxr_string">""</span>.equals(resetAttrib))) {
<a name="950" href="#950">950</a>          <strong class="jxr_keyword">if</strong> (OptionConverter.toBoolean(resetAttrib, false)) {
<a name="951" href="#951">951</a>              repository.resetConfiguration();
<a name="952" href="#952">952</a>          }
<a name="953" href="#953">953</a>     }
<a name="954" href="#954">954</a> 
<a name="955" href="#955">955</a> 
<a name="956" href="#956">956</a> 
<a name="957" href="#957">957</a>     String confDebug = subst(element.getAttribute(CONFIG_DEBUG_ATTR));
<a name="958" href="#958">958</a>     <strong class="jxr_keyword">if</strong>(!confDebug.equals(<span class="jxr_string">""</span>) &amp;&amp; !confDebug.equals(<span class="jxr_string">"null"</span>)) {      
<a name="959" href="#959">959</a>       LogLog.warn(<span class="jxr_string">"The \&quot;"</span>+CONFIG_DEBUG_ATTR+<span class="jxr_string">"\&quot; attribute is deprecated."</span>);
<a name="960" href="#960">960</a>       LogLog.warn(<span class="jxr_string">"Use the \&quot;"</span>+INTERNAL_DEBUG_ATTR+<span class="jxr_string">"\&quot; attribute instead."</span>);
<a name="961" href="#961">961</a>       LogLog.setInternalDebugging(OptionConverter.toBoolean(confDebug, <strong class="jxr_keyword">true</strong>));
<a name="962" href="#962">962</a>     }
<a name="963" href="#963">963</a> 
<a name="964" href="#964">964</a>     String thresholdStr = subst(element.getAttribute(THRESHOLD_ATTR));
<a name="965" href="#965">965</a>     LogLog.debug(<span class="jxr_string">"Threshold =\&quot;"</span> + thresholdStr +<span class="jxr_string">"\&quot;."</span>);
<a name="966" href="#966">966</a>     <strong class="jxr_keyword">if</strong>(!<span class="jxr_string">""</span>.equals(thresholdStr) &amp;&amp; !<span class="jxr_string">"null"</span>.equals(thresholdStr)) {
<a name="967" href="#967">967</a>       repository.setThreshold(thresholdStr);
<a name="968" href="#968">968</a>     }
<a name="969" href="#969">969</a> 
<a name="970" href="#970">970</a>     <em class="jxr_comment">//Hashtable appenderBag = new Hashtable(11);</em>
<a name="971" href="#971">971</a> 
<a name="972" href="#972">972</a>     <em class="jxr_comment">/*<em class="jxr_comment"> Building Appender objects, placing them in a local namespace</em></em>
<a name="973" href="#973">973</a> <em class="jxr_comment">       for future reference */</em>
<a name="974" href="#974">974</a> 
<a name="975" href="#975">975</a>     <em class="jxr_comment">// First configure each category factory under the root element.</em>
<a name="976" href="#976">976</a>     <em class="jxr_comment">// Category factories need to be configured before any of</em>
<a name="977" href="#977">977</a>     <em class="jxr_comment">// categories they support.</em>
<a name="978" href="#978">978</a>     <em class="jxr_comment">//</em>
<a name="979" href="#979">979</a>     String   tagName = <strong class="jxr_keyword">null</strong>;
<a name="980" href="#980">980</a>     Element  currentElement = <strong class="jxr_keyword">null</strong>;
<a name="981" href="#981">981</a>     Node     currentNode = <strong class="jxr_keyword">null</strong>;
<a name="982" href="#982">982</a>     NodeList children = element.getChildNodes();
<a name="983" href="#983">983</a>     <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> length = children.getLength();
<a name="984" href="#984">984</a> 
<a name="985" href="#985">985</a>     <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> loop = 0; loop &lt; length; loop++) {
<a name="986" href="#986">986</a>       currentNode = children.item(loop);
<a name="987" href="#987">987</a>       <strong class="jxr_keyword">if</strong> (currentNode.getNodeType() == Node.ELEMENT_NODE) {
<a name="988" href="#988">988</a> 	currentElement = (Element) currentNode;
<a name="989" href="#989">989</a> 	tagName = currentElement.getTagName();
<a name="990" href="#990">990</a> 
<a name="991" href="#991">991</a> 	<strong class="jxr_keyword">if</strong> (tagName.equals(CATEGORY_FACTORY_TAG) || tagName.equals(LOGGER_FACTORY_TAG)) {
<a name="992" href="#992">992</a> 	  parseCategoryFactory(currentElement);
<a name="993" href="#993">993</a> 	}
<a name="994" href="#994">994</a>       }
<a name="995" href="#995">995</a>     }
<a name="996" href="#996">996</a>     
<a name="997" href="#997">997</a>     <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> loop = 0; loop &lt; length; loop++) {
<a name="998" href="#998">998</a>       currentNode = children.item(loop);
<a name="999" href="#999">999</a>       <strong class="jxr_keyword">if</strong> (currentNode.getNodeType() == Node.ELEMENT_NODE) {
<a name="1000" href="#1000">1000</a> 	currentElement = (Element) currentNode;
<a name="1001" href="#1001">1001</a> 	tagName = currentElement.getTagName();
<a name="1002" href="#1002">1002</a> 
<a name="1003" href="#1003">1003</a> 	<strong class="jxr_keyword">if</strong> (tagName.equals(CATEGORY) || tagName.equals(LOGGER)) {
<a name="1004" href="#1004">1004</a> 	  parseCategory(currentElement);
<a name="1005" href="#1005">1005</a> 	} <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (tagName.equals(ROOT_TAG)) {
<a name="1006" href="#1006">1006</a> 	  parseRoot(currentElement);
<a name="1007" href="#1007">1007</a> 	} <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong>(tagName.equals(RENDERER_TAG)) {
<a name="1008" href="#1008">1008</a> 	  parseRenderer(currentElement);
<a name="1009" href="#1009">1009</a>     } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong>(tagName.equals(THROWABLE_RENDERER_TAG)) {
<a name="1010" href="#1010">1010</a>         <strong class="jxr_keyword">if</strong> (repository instanceof ThrowableRendererSupport) {
<a name="1011" href="#1011">1011</a>             <a href="../../../../org/apache/log4j/spi/ThrowableRenderer.html">ThrowableRenderer</a> tr = parseThrowableRenderer(currentElement);
<a name="1012" href="#1012">1012</a>             <strong class="jxr_keyword">if</strong> (tr != <strong class="jxr_keyword">null</strong>) {
<a name="1013" href="#1013">1013</a>                 ((<a href="../../../../org/apache/log4j/spi/ThrowableRendererSupport.html">ThrowableRendererSupport</a>) repository).setThrowableRenderer(tr);
<a name="1014" href="#1014">1014</a>             }
<a name="1015" href="#1015">1015</a>         }
<a name="1016" href="#1016">1016</a>     } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (!(tagName.equals(APPENDER_TAG)
<a name="1017" href="#1017">1017</a>             || tagName.equals(CATEGORY_FACTORY_TAG)
<a name="1018" href="#1018">1018</a>             || tagName.equals(LOGGER_FACTORY_TAG))) {
<a name="1019" href="#1019">1019</a>         quietParseUnrecognizedElement(repository, currentElement, props);
<a name="1020" href="#1020">1020</a>     }
<a name="1021" href="#1021">1021</a>       }
<a name="1022" href="#1022">1022</a>     }
<a name="1023" href="#1023">1023</a>   }
<a name="1024" href="#1024">1024</a> 
<a name="1025" href="#1025">1025</a>   
<a name="1026" href="#1026">1026</a>   <strong class="jxr_keyword">protected</strong>
<a name="1027" href="#1027">1027</a>   String subst(<strong class="jxr_keyword">final</strong> String value) {
<a name="1028" href="#1028">1028</a>       <strong class="jxr_keyword">return</strong> subst(value, props);
<a name="1029" href="#1029">1029</a>   }
<a name="1030" href="#1030">1030</a> 
<a name="1031" href="#1031">1031</a>     <em class="jxr_javadoccomment">/**</em>
<a name="1032" href="#1032">1032</a> <em class="jxr_javadoccomment">     * Substitutes property value for any references in expression.</em>
<a name="1033" href="#1033">1033</a> <em class="jxr_javadoccomment">     *</em>
<a name="1034" href="#1034">1034</a> <em class="jxr_javadoccomment">     * @param value value from configuration file, may contain</em>
<a name="1035" href="#1035">1035</a> <em class="jxr_javadoccomment">     *              literal text, property references or both</em>
<a name="1036" href="#1036">1036</a> <em class="jxr_javadoccomment">     * @param props properties.</em>
<a name="1037" href="#1037">1037</a> <em class="jxr_javadoccomment">     * @return evaluated expression, may still contain expressions</em>
<a name="1038" href="#1038">1038</a> <em class="jxr_javadoccomment">     *         if unable to expand.</em>
<a name="1039" href="#1039">1039</a> <em class="jxr_javadoccomment">     * @since 1.2.15</em>
<a name="1040" href="#1040">1040</a> <em class="jxr_javadoccomment">     */</em>
<a name="1041" href="#1041">1041</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> String subst(<strong class="jxr_keyword">final</strong> String value, <strong class="jxr_keyword">final</strong> Properties props) {
<a name="1042" href="#1042">1042</a>         <strong class="jxr_keyword">try</strong> {
<a name="1043" href="#1043">1043</a>             <strong class="jxr_keyword">return</strong> OptionConverter.substVars(value, props);
<a name="1044" href="#1044">1044</a>         } <strong class="jxr_keyword">catch</strong> (IllegalArgumentException e) {
<a name="1045" href="#1045">1045</a>             LogLog.warn(<span class="jxr_string">"Could not perform variable substitution."</span>, e);
<a name="1046" href="#1046">1046</a>             <strong class="jxr_keyword">return</strong> value;
<a name="1047" href="#1047">1047</a>         }
<a name="1048" href="#1048">1048</a>     }
<a name="1049" href="#1049">1049</a> 
<a name="1050" href="#1050">1050</a> 
<a name="1051" href="#1051">1051</a>     <em class="jxr_javadoccomment">/**</em>
<a name="1052" href="#1052">1052</a> <em class="jxr_javadoccomment">     * Sets a parameter based from configuration file content.</em>
<a name="1053" href="#1053">1053</a> <em class="jxr_javadoccomment">     *</em>
<a name="1054" href="#1054">1054</a> <em class="jxr_javadoccomment">     * @param elem       param element, may not be null.</em>
<a name="1055" href="#1055">1055</a> <em class="jxr_javadoccomment">     * @param propSetter property setter, may not be null.</em>
<a name="1056" href="#1056">1056</a> <em class="jxr_javadoccomment">     * @param props      properties</em>
<a name="1057" href="#1057">1057</a> <em class="jxr_javadoccomment">     * @since 1.2.15</em>
<a name="1058" href="#1058">1058</a> <em class="jxr_javadoccomment">     */</em>
<a name="1059" href="#1059">1059</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> setParameter(<strong class="jxr_keyword">final</strong> Element elem,
<a name="1060" href="#1060">1060</a>                                     <strong class="jxr_keyword">final</strong> <a href="../../../../org/apache/log4j/config/PropertySetter.html">PropertySetter</a> propSetter,
<a name="1061" href="#1061">1061</a>                                     <strong class="jxr_keyword">final</strong> Properties props) {
<a name="1062" href="#1062">1062</a>         String name = subst(elem.getAttribute(<span class="jxr_string">"name"</span>), props);
<a name="1063" href="#1063">1063</a>         String value = (elem.getAttribute(<span class="jxr_string">"value"</span>));
<a name="1064" href="#1064">1064</a>         value = subst(OptionConverter.convertSpecialChars(value), props);
<a name="1065" href="#1065">1065</a>         propSetter.setProperty(name, value);
<a name="1066" href="#1066">1066</a>     }
<a name="1067" href="#1067">1067</a> 
<a name="1068" href="#1068">1068</a>     <em class="jxr_javadoccomment">/**</em>
<a name="1069" href="#1069">1069</a> <em class="jxr_javadoccomment">     * Creates an object and processes any nested param elements</em>
<a name="1070" href="#1070">1070</a> <em class="jxr_javadoccomment">     * but does not call activateOptions.  If the class also supports</em>
<a name="1071" href="#1071">1071</a> <em class="jxr_javadoccomment">     * UnrecognizedElementParser, the parseUnrecognizedElement method</em>
<a name="1072" href="#1072">1072</a> <em class="jxr_javadoccomment">     * will be call for any child elements other than param.</em>
<a name="1073" href="#1073">1073</a> <em class="jxr_javadoccomment">     *</em>
<a name="1074" href="#1074">1074</a> <em class="jxr_javadoccomment">     * @param element       element, may not be null.</em>
<a name="1075" href="#1075">1075</a> <em class="jxr_javadoccomment">     * @param props         properties</em>
<a name="1076" href="#1076">1076</a> <em class="jxr_javadoccomment">     * @param expectedClass interface or class expected to be implemented</em>
<a name="1077" href="#1077">1077</a> <em class="jxr_javadoccomment">     *                      by created class</em>
<a name="1078" href="#1078">1078</a> <em class="jxr_javadoccomment">     * @return created class or null.</em>
<a name="1079" href="#1079">1079</a> <em class="jxr_javadoccomment">     * @throws Exception thrown if the contain object should be abandoned.</em>
<a name="1080" href="#1080">1080</a> <em class="jxr_javadoccomment">     * @since 1.2.15</em>
<a name="1081" href="#1081">1081</a> <em class="jxr_javadoccomment">     */</em>
<a name="1082" href="#1082">1082</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> Object parseElement(<strong class="jxr_keyword">final</strong> Element element,
<a name="1083" href="#1083">1083</a>                                              <strong class="jxr_keyword">final</strong> Properties props,
<a name="1084" href="#1084">1084</a>                                              <strong class="jxr_keyword">final</strong> Class expectedClass) <strong class="jxr_keyword">throws</strong> Exception {
<a name="1085" href="#1085">1085</a>         String clazz = subst(element.getAttribute(<span class="jxr_string">"class"</span>), props);
<a name="1086" href="#1086">1086</a>         Object instance = OptionConverter.instantiateByClassName(clazz,
<a name="1087" href="#1087">1087</a>                 expectedClass, <strong class="jxr_keyword">null</strong>);
<a name="1088" href="#1088">1088</a> 
<a name="1089" href="#1089">1089</a>         <strong class="jxr_keyword">if</strong> (instance != <strong class="jxr_keyword">null</strong>) {
<a name="1090" href="#1090">1090</a>             <a href="../../../../org/apache/log4j/config/PropertySetter.html">PropertySetter</a> propSetter = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/config/PropertySetter.html">PropertySetter</a>(instance);
<a name="1091" href="#1091">1091</a>             NodeList children = element.getChildNodes();
<a name="1092" href="#1092">1092</a>             <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> length = children.getLength();
<a name="1093" href="#1093">1093</a> 
<a name="1094" href="#1094">1094</a>             <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> loop = 0; loop &lt; length; loop++) {
<a name="1095" href="#1095">1095</a>                 Node currentNode = children.item(loop);
<a name="1096" href="#1096">1096</a>                 <strong class="jxr_keyword">if</strong> (currentNode.getNodeType() == Node.ELEMENT_NODE) {
<a name="1097" href="#1097">1097</a>                     Element currentElement = (Element) currentNode;
<a name="1098" href="#1098">1098</a>                     String tagName = currentElement.getTagName();
<a name="1099" href="#1099">1099</a>                     <strong class="jxr_keyword">if</strong> (tagName.equals(<span class="jxr_string">"param"</span>)) {
<a name="1100" href="#1100">1100</a>                         setParameter(currentElement, propSetter, props);
<a name="1101" href="#1101">1101</a>                     } <strong class="jxr_keyword">else</strong> {
<a name="1102" href="#1102">1102</a>                          parseUnrecognizedElement(instance, currentElement, props);
<a name="1103" href="#1103">1103</a>                     }
<a name="1104" href="#1104">1104</a>                 }
<a name="1105" href="#1105">1105</a>             }
<a name="1106" href="#1106">1106</a>             <strong class="jxr_keyword">return</strong> instance;
<a name="1107" href="#1107">1107</a>         }
<a name="1108" href="#1108">1108</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a name="1109" href="#1109">1109</a>     }
<a name="1110" href="#1110">1110</a> 
<a name="1111" href="#1111">1111</a> }
<a name="1112" href="#1112">1112</a> 
<a name="1113" href="#1113">1113</a> 
<a name="1114" href="#1114">1114</a> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/log4j/xml/DOMConfigurator.html">XMLWatchdog</a> <strong class="jxr_keyword">extends</strong> <a href="../../../../org/apache/log4j/helpers/FileWatchdog.html">FileWatchdog</a> {
<a name="1115" href="#1115">1115</a> 
<a name="1116" href="#1116">1116</a>     <a href="../../../../org/apache/log4j/xml/DOMConfigurator.html">XMLWatchdog</a>(String filename) {
<a name="1117" href="#1117">1117</a>     <strong class="jxr_keyword">super</strong>(filename);
<a name="1118" href="#1118">1118</a>   }
<a name="1119" href="#1119">1119</a> 
<a name="1120" href="#1120">1120</a>   <em class="jxr_javadoccomment">/**</em>
<a name="1121" href="#1121">1121</a> <em class="jxr_javadoccomment">     Call {@link DOMConfigurator#configure(String)} with the</em>
<a name="1122" href="#1122">1122</a> <em class="jxr_javadoccomment">     &lt;code&gt;filename&lt;/code&gt; to reconfigure log4j. */</em>
<a name="1123" href="#1123">1123</a>   <strong class="jxr_keyword">public</strong>
<a name="1124" href="#1124">1124</a>   <strong class="jxr_keyword">void</strong> doOnChange() {
<a name="1125" href="#1125">1125</a>     <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/xml/DOMConfigurator.html">DOMConfigurator</a>().doConfigure(filename, 
<a name="1126" href="#1126">1126</a> 				      LogManager.getLoggerRepository());
<a name="1127" href="#1127">1127</a>   }
<a name="1128" href="#1128">1128</a> }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

