<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head><meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<title>LogFilePatternLayoutBuilder xref</title>
<link type="text/css" rel="stylesheet" href="../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../apidocs/org/apache/log4j/chainsaw/LogFilePatternLayoutBuilder.html">View Javadoc</a></div><pre>
<a class="jxr_linenumber" name="L1" href="#L1">1</a>   <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="L2" href="#L2">2</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one or more</em>
<a class="jxr_linenumber" name="L3" href="#L3">3</a>   <em class="jxr_comment"> * contributor license agreements.  See the NOTICE file distributed with</em>
<a class="jxr_linenumber" name="L4" href="#L4">4</a>   <em class="jxr_comment"> * this work for additional information regarding copyright ownership.</em>
<a class="jxr_linenumber" name="L5" href="#L5">5</a>   <em class="jxr_comment"> * The ASF licenses this file to You under the Apache License, Version 2.0</em>
<a class="jxr_linenumber" name="L6" href="#L6">6</a>   <em class="jxr_comment"> * (the "License"); you may not use this file except in compliance with</em>
<a class="jxr_linenumber" name="L7" href="#L7">7</a>   <em class="jxr_comment"> * the License.  You may obtain a copy of the License at</em>
<a class="jxr_linenumber" name="L8" href="#L8">8</a>   <em class="jxr_comment"> *</em>
<a class="jxr_linenumber" name="L9" href="#L9">9</a>   <em class="jxr_comment"> *      <a href="http://www.apache.org/licenses/LICENSE-2." target="alexandria_uri">http://www.apache.org/licenses/LICENSE-2.</a>0</em>
<a class="jxr_linenumber" name="L10" href="#L10">10</a>  <em class="jxr_comment"> *</em>
<a class="jxr_linenumber" name="L11" href="#L11">11</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing, software</em>
<a class="jxr_linenumber" name="L12" href="#L12">12</a>  <em class="jxr_comment"> * distributed under the License is distributed on an "AS IS" BASIS,</em>
<a class="jxr_linenumber" name="L13" href="#L13">13</a>  <em class="jxr_comment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</em>
<a class="jxr_linenumber" name="L14" href="#L14">14</a>  <em class="jxr_comment"> * See the License for the specific language governing permissions and</em>
<a class="jxr_linenumber" name="L15" href="#L15">15</a>  <em class="jxr_comment"> * limitations under the License.</em>
<a class="jxr_linenumber" name="L16" href="#L16">16</a>  <em class="jxr_comment"> */</em>
<a class="jxr_linenumber" name="L17" href="#L17">17</a>  <strong class="jxr_keyword">package</strong> org.apache.log4j.chainsaw;
<a class="jxr_linenumber" name="L18" href="#L18">18</a>  
<a class="jxr_linenumber" name="L19" href="#L19">19</a>  <strong class="jxr_keyword">import</strong> java.io.File;
<a class="jxr_linenumber" name="L20" href="#L20">20</a>  <strong class="jxr_keyword">import</strong> java.io.FileInputStream;
<a class="jxr_linenumber" name="L21" href="#L21">21</a>  <strong class="jxr_keyword">import</strong> java.io.IOException;
<a class="jxr_linenumber" name="L22" href="#L22">22</a>  <strong class="jxr_keyword">import</strong> java.io.InputStream;
<a class="jxr_linenumber" name="L23" href="#L23">23</a>  <strong class="jxr_keyword">import</strong> java.util.ArrayList;
<a class="jxr_linenumber" name="L24" href="#L24">24</a>  <strong class="jxr_keyword">import</strong> java.util.Enumeration;
<a class="jxr_linenumber" name="L25" href="#L25">25</a>  <strong class="jxr_keyword">import</strong> java.util.HashMap;
<a class="jxr_linenumber" name="L26" href="#L26">26</a>  <strong class="jxr_keyword">import</strong> java.util.Iterator;
<a class="jxr_linenumber" name="L27" href="#L27">27</a>  <strong class="jxr_keyword">import</strong> java.util.List;
<a class="jxr_linenumber" name="L28" href="#L28">28</a>  <strong class="jxr_keyword">import</strong> java.util.Locale;
<a class="jxr_linenumber" name="L29" href="#L29">29</a>  <strong class="jxr_keyword">import</strong> java.util.Map;
<a class="jxr_linenumber" name="L30" href="#L30">30</a>  <strong class="jxr_keyword">import</strong> java.util.Properties;
<a class="jxr_linenumber" name="L31" href="#L31">31</a>  
<a class="jxr_linenumber" name="L32" href="#L32">32</a>  <strong class="jxr_keyword">import</strong> javax.xml.parsers.DocumentBuilder;
<a class="jxr_linenumber" name="L33" href="#L33">33</a>  <strong class="jxr_keyword">import</strong> javax.xml.parsers.DocumentBuilderFactory;
<a class="jxr_linenumber" name="L34" href="#L34">34</a>  <strong class="jxr_keyword">import</strong> javax.xml.parsers.ParserConfigurationException;
<a class="jxr_linenumber" name="L35" href="#L35">35</a>  
<a class="jxr_linenumber" name="L36" href="#L36">36</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.chainsaw.messages.MessageCenter;
<a class="jxr_linenumber" name="L37" href="#L37">37</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.helpers.OptionConverter;
<a class="jxr_linenumber" name="L38" href="#L38">38</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.pattern.ClassNamePatternConverter;
<a class="jxr_linenumber" name="L39" href="#L39">39</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.pattern.DatePatternConverter;
<a class="jxr_linenumber" name="L40" href="#L40">40</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.pattern.FileLocationPatternConverter;
<a class="jxr_linenumber" name="L41" href="#L41">41</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.pattern.FullLocationPatternConverter;
<a class="jxr_linenumber" name="L42" href="#L42">42</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.pattern.LevelPatternConverter;
<a class="jxr_linenumber" name="L43" href="#L43">43</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.pattern.LineLocationPatternConverter;
<a class="jxr_linenumber" name="L44" href="#L44">44</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.pattern.LineSeparatorPatternConverter;
<a class="jxr_linenumber" name="L45" href="#L45">45</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.pattern.LiteralPatternConverter;
<a class="jxr_linenumber" name="L46" href="#L46">46</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.pattern.LoggerPatternConverter;
<a class="jxr_linenumber" name="L47" href="#L47">47</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.pattern.LoggingEventPatternConverter;
<a class="jxr_linenumber" name="L48" href="#L48">48</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.pattern.MessagePatternConverter;
<a class="jxr_linenumber" name="L49" href="#L49">49</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.pattern.MethodLocationPatternConverter;
<a class="jxr_linenumber" name="L50" href="#L50">50</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.pattern.NDCPatternConverter;
<a class="jxr_linenumber" name="L51" href="#L51">51</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.pattern.PatternParser;
<a class="jxr_linenumber" name="L52" href="#L52">52</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.pattern.PropertiesPatternConverter;
<a class="jxr_linenumber" name="L53" href="#L53">53</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.pattern.RelativeTimePatternConverter;
<a class="jxr_linenumber" name="L54" href="#L54">54</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.pattern.SequenceNumberPatternConverter;
<a class="jxr_linenumber" name="L55" href="#L55">55</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.pattern.ThreadPatternConverter;
<a class="jxr_linenumber" name="L56" href="#L56">56</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.xml.Log4jEntityResolver;
<a class="jxr_linenumber" name="L57" href="#L57">57</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.xml.SAXErrorHandler;
<a class="jxr_linenumber" name="L58" href="#L58">58</a>  <strong class="jxr_keyword">import</strong> org.w3c.dom.Document;
<a class="jxr_linenumber" name="L59" href="#L59">59</a>  <strong class="jxr_keyword">import</strong> org.w3c.dom.NamedNodeMap;
<a class="jxr_linenumber" name="L60" href="#L60">60</a>  <strong class="jxr_keyword">import</strong> org.w3c.dom.Node;
<a class="jxr_linenumber" name="L61" href="#L61">61</a>  <strong class="jxr_keyword">import</strong> org.w3c.dom.NodeList;
<a class="jxr_linenumber" name="L62" href="#L62">62</a>  <strong class="jxr_keyword">import</strong> org.xml.sax.InputSource;
<a class="jxr_linenumber" name="L63" href="#L63">63</a>  <strong class="jxr_keyword">import</strong> org.xml.sax.SAXException;
<a class="jxr_linenumber" name="L64" href="#L64">64</a>  
<a class="jxr_linenumber" name="L65" href="#L65">65</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/log4j/chainsaw/LogFilePatternLayoutBuilder.html">LogFilePatternLayoutBuilder</a>
<a class="jxr_linenumber" name="L66" href="#L66">66</a>  {
<a class="jxr_linenumber" name="L67" href="#L67">67</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> String getLogFormatFromPatternLayout(String patternLayout) {
<a class="jxr_linenumber" name="L68" href="#L68">68</a>          String input = OptionConverter.convertSpecialChars(patternLayout);
<a class="jxr_linenumber" name="L69" href="#L69">69</a>          List converters = <strong class="jxr_keyword">new</strong> ArrayList();
<a class="jxr_linenumber" name="L70" href="#L70">70</a>          List fields = <strong class="jxr_keyword">new</strong> ArrayList();
<a class="jxr_linenumber" name="L71" href="#L71">71</a>          Map converterRegistry = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L72" href="#L72">72</a>  
<a class="jxr_linenumber" name="L73" href="#L73">73</a>          PatternParser.parse(input, converters, fields, converterRegistry, PatternParser.getPatternLayoutRules());
<a class="jxr_linenumber" name="L74" href="#L74">74</a>          <strong class="jxr_keyword">return</strong> getFormatFromConverters(converters);
<a class="jxr_linenumber" name="L75" href="#L75">75</a>      }
<a class="jxr_linenumber" name="L76" href="#L76">76</a>  
<a class="jxr_linenumber" name="L77" href="#L77">77</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> String getTimeStampFormat(String patternLayout) {
<a class="jxr_linenumber" name="L78" href="#L78">78</a>        <strong class="jxr_keyword">int</strong> basicIndex = patternLayout.indexOf(<span class="jxr_string">"%d"</span>);
<a class="jxr_linenumber" name="L79" href="#L79">79</a>        <strong class="jxr_keyword">if</strong> (basicIndex &lt; 0) {
<a class="jxr_linenumber" name="L80" href="#L80">80</a>          <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L81" href="#L81">81</a>        }
<a class="jxr_linenumber" name="L82" href="#L82">82</a>  
<a class="jxr_linenumber" name="L83" href="#L83">83</a>        <strong class="jxr_keyword">int</strong> index = patternLayout.indexOf(<span class="jxr_string">"%d{"</span>);
<a class="jxr_linenumber" name="L84" href="#L84">84</a>        <em class="jxr_comment">//%d - default</em>
<a class="jxr_linenumber" name="L85" href="#L85">85</a>        <strong class="jxr_keyword">if</strong> (index &lt; 0) {
<a class="jxr_linenumber" name="L86" href="#L86">86</a>          <strong class="jxr_keyword">return</strong> <span class="jxr_string">"yyyy-MM-dd HH:mm:ss,SSS"</span>;
<a class="jxr_linenumber" name="L87" href="#L87">87</a>        }
<a class="jxr_linenumber" name="L88" href="#L88">88</a>  
<a class="jxr_linenumber" name="L89" href="#L89">89</a>        <strong class="jxr_keyword">int</strong> length = patternLayout.substring(index).indexOf(<span class="jxr_string">"}"</span>);
<a class="jxr_linenumber" name="L90" href="#L90">90</a>        String timestampFormat = patternLayout.substring(index + <span class="jxr_string">"%d{"</span>.length(), index + length);
<a class="jxr_linenumber" name="L91" href="#L91">91</a>        <strong class="jxr_keyword">if</strong> (timestampFormat.equals(<span class="jxr_string">"ABSOLUTE"</span>)) {
<a class="jxr_linenumber" name="L92" href="#L92">92</a>          <strong class="jxr_keyword">return</strong> <span class="jxr_string">"HH:mm:ss,SSS"</span>;
<a class="jxr_linenumber" name="L93" href="#L93">93</a>        }
<a class="jxr_linenumber" name="L94" href="#L94">94</a>        <strong class="jxr_keyword">if</strong> (timestampFormat.equals(<span class="jxr_string">"ISO8601"</span>)) {
<a class="jxr_linenumber" name="L95" href="#L95">95</a>          <strong class="jxr_keyword">return</strong> <span class="jxr_string">"yyyy-MM-dd HH:mm:ss,SSS"</span>;
<a class="jxr_linenumber" name="L96" href="#L96">96</a>        }
<a class="jxr_linenumber" name="L97" href="#L97">97</a>        <strong class="jxr_keyword">if</strong> (timestampFormat.equals(<span class="jxr_string">"DATE"</span>)) {
<a class="jxr_linenumber" name="L98" href="#L98">98</a>          <strong class="jxr_keyword">return</strong> <span class="jxr_string">"dd MMM yyyy HH:mm:ss,SSS"</span>;
<a class="jxr_linenumber" name="L99" href="#L99">99</a>        }
<a class="jxr_linenumber" name="L100" href="#L100">100</a>       <strong class="jxr_keyword">return</strong> timestampFormat;
<a class="jxr_linenumber" name="L101" href="#L101">101</a>     }
<a class="jxr_linenumber" name="L102" href="#L102">102</a>   
<a class="jxr_linenumber" name="L103" href="#L103">103</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> String getFormatFromConverters(List converters) {
<a class="jxr_linenumber" name="L104" href="#L104">104</a>         StringBuffer buffer = <strong class="jxr_keyword">new</strong> StringBuffer();
<a class="jxr_linenumber" name="L105" href="#L105">105</a>         <strong class="jxr_keyword">for</strong> (Iterator iter = converters.iterator();iter.hasNext();) {
<a class="jxr_linenumber" name="L106" href="#L106">106</a>             LoggingEventPatternConverter converter = (LoggingEventPatternConverter)iter.next();
<a class="jxr_linenumber" name="L107" href="#L107">107</a>             <strong class="jxr_keyword">if</strong> (converter instanceof DatePatternConverter) {
<a class="jxr_linenumber" name="L108" href="#L108">108</a>               buffer.append(<span class="jxr_string">"TIMESTAMP"</span>);
<a class="jxr_linenumber" name="L109" href="#L109">109</a>             } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (converter instanceof MessagePatternConverter) {
<a class="jxr_linenumber" name="L110" href="#L110">110</a>                 buffer.append(<span class="jxr_string">"MESSAGE"</span>);
<a class="jxr_linenumber" name="L111" href="#L111">111</a>             } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (converter instanceof LoggerPatternConverter) {
<a class="jxr_linenumber" name="L112" href="#L112">112</a>                 buffer.append(<span class="jxr_string">"LOGGER"</span>);
<a class="jxr_linenumber" name="L113" href="#L113">113</a>             } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (converter instanceof ClassNamePatternConverter) {
<a class="jxr_linenumber" name="L114" href="#L114">114</a>                 buffer.append(<span class="jxr_string">"CLASS"</span>);
<a class="jxr_linenumber" name="L115" href="#L115">115</a>             } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (converter instanceof RelativeTimePatternConverter) {
<a class="jxr_linenumber" name="L116" href="#L116">116</a>                 buffer.append(<span class="jxr_string">"PROP(RELATIVETIME)"</span>);
<a class="jxr_linenumber" name="L117" href="#L117">117</a>             } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (converter instanceof ThreadPatternConverter) {
<a class="jxr_linenumber" name="L118" href="#L118">118</a>                 buffer.append(<span class="jxr_string">"THREAD"</span>);
<a class="jxr_linenumber" name="L119" href="#L119">119</a>             } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (converter instanceof NDCPatternConverter) {
<a class="jxr_linenumber" name="L120" href="#L120">120</a>                 buffer.append(<span class="jxr_string">"NDC"</span>);
<a class="jxr_linenumber" name="L121" href="#L121">121</a>             } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (converter instanceof LiteralPatternConverter) {
<a class="jxr_linenumber" name="L122" href="#L122">122</a>                 LiteralPatternConverter literal = (LiteralPatternConverter)converter;
<a class="jxr_linenumber" name="L123" href="#L123">123</a>                 <em class="jxr_comment">//format shouldn't normally take a null, but we're getting a literal, so passing in the buffer will work</em>
<a class="jxr_linenumber" name="L124" href="#L124">124</a>                 literal.format(<strong class="jxr_keyword">null</strong>, buffer);
<a class="jxr_linenumber" name="L125" href="#L125">125</a>             } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (converter instanceof SequenceNumberPatternConverter) {
<a class="jxr_linenumber" name="L126" href="#L126">126</a>                 buffer.append(<span class="jxr_string">"PROP(log4jid)"</span>);
<a class="jxr_linenumber" name="L127" href="#L127">127</a>             } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (converter instanceof LevelPatternConverter) {
<a class="jxr_linenumber" name="L128" href="#L128">128</a>                 buffer.append(<span class="jxr_string">"LEVEL"</span>);
<a class="jxr_linenumber" name="L129" href="#L129">129</a>             } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (converter instanceof MethodLocationPatternConverter) {
<a class="jxr_linenumber" name="L130" href="#L130">130</a>                 buffer.append(<span class="jxr_string">"METHOD"</span>);
<a class="jxr_linenumber" name="L131" href="#L131">131</a>             } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (converter instanceof FullLocationPatternConverter) {
<a class="jxr_linenumber" name="L132" href="#L132">132</a>                 buffer.append(<span class="jxr_string">"PROP(locationInfo)"</span>);
<a class="jxr_linenumber" name="L133" href="#L133">133</a>             } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (converter instanceof LineLocationPatternConverter) {
<a class="jxr_linenumber" name="L134" href="#L134">134</a>                 buffer.append(<span class="jxr_string">"LINE"</span>);
<a class="jxr_linenumber" name="L135" href="#L135">135</a>             } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (converter instanceof FileLocationPatternConverter) {
<a class="jxr_linenumber" name="L136" href="#L136">136</a>                 buffer.append(<span class="jxr_string">"FILE"</span>);
<a class="jxr_linenumber" name="L137" href="#L137">137</a>             } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (converter instanceof PropertiesPatternConverter) {
<a class="jxr_linenumber" name="L138" href="#L138">138</a> <em class="jxr_comment">//                PropertiesPatternConverter propertiesConverter = (PropertiesPatternConverter) converter;</em>
<a class="jxr_linenumber" name="L139" href="#L139">139</a> <em class="jxr_comment">//                String option = propertiesConverter.getOption();</em>
<a class="jxr_linenumber" name="L140" href="#L140">140</a> <em class="jxr_comment">//                if (option != null &amp;&amp; option.length() &gt; 0) {</em>
<a class="jxr_linenumber" name="L141" href="#L141">141</a> <em class="jxr_comment">//                    buffer.append("PROP(" + option + ")");</em>
<a class="jxr_linenumber" name="L142" href="#L142">142</a> <em class="jxr_comment">//                } else {</em>
<a class="jxr_linenumber" name="L143" href="#L143">143</a>                     buffer.append(<span class="jxr_string">"PROP(PROPERTIES)"</span>);
<a class="jxr_linenumber" name="L144" href="#L144">144</a> <em class="jxr_comment">//                }</em>
<a class="jxr_linenumber" name="L145" href="#L145">145</a>             } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (converter instanceof LineSeparatorPatternConverter) {
<a class="jxr_linenumber" name="L146" href="#L146">146</a>                 <em class="jxr_comment">//done</em>
<a class="jxr_linenumber" name="L147" href="#L147">147</a>             }
<a class="jxr_linenumber" name="L148" href="#L148">148</a>         }
<a class="jxr_linenumber" name="L149" href="#L149">149</a>         <strong class="jxr_keyword">return</strong> buffer.toString();
<a class="jxr_linenumber" name="L150" href="#L150">150</a>     }
<a class="jxr_linenumber" name="L151" href="#L151">151</a> 
<a class="jxr_linenumber" name="L152" href="#L152">152</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> Map getAppenderConfiguration(File file) {
<a class="jxr_linenumber" name="L153" href="#L153">153</a>     <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="L154" href="#L154">154</a>       <strong class="jxr_keyword">return</strong> getXMLFileAppenderConfiguration(file);
<a class="jxr_linenumber" name="L155" href="#L155">155</a>     } <strong class="jxr_keyword">catch</strong> (IOException e) {
<a class="jxr_linenumber" name="L156" href="#L156">156</a>       <em class="jxr_comment">//ignore</em>
<a class="jxr_linenumber" name="L157" href="#L157">157</a>     } <strong class="jxr_keyword">catch</strong> (ParserConfigurationException e) {
<a class="jxr_linenumber" name="L158" href="#L158">158</a>       <em class="jxr_comment">//ignore</em>
<a class="jxr_linenumber" name="L159" href="#L159">159</a>     } <strong class="jxr_keyword">catch</strong> (SAXException e) {
<a class="jxr_linenumber" name="L160" href="#L160">160</a>       <em class="jxr_comment">//ignore</em>
<a class="jxr_linenumber" name="L161" href="#L161">161</a>     }
<a class="jxr_linenumber" name="L162" href="#L162">162</a>     <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="L163" href="#L163">163</a>       <strong class="jxr_keyword">return</strong> getPropertiesFileAppenderConfiguration(file);
<a class="jxr_linenumber" name="L164" href="#L164">164</a>     } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a class="jxr_linenumber" name="L165" href="#L165">165</a>       <em class="jxr_comment">//ignore</em>
<a class="jxr_linenumber" name="L166" href="#L166">166</a>     }
<a class="jxr_linenumber" name="L167" href="#L167">167</a>     <em class="jxr_comment">//don't return null</em>
<a class="jxr_linenumber" name="L168" href="#L168">168</a>     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> HashMap();
<a class="jxr_linenumber" name="L169" href="#L169">169</a>   }
<a class="jxr_linenumber" name="L170" href="#L170">170</a> 
<a class="jxr_linenumber" name="L171" href="#L171">171</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> Map getPropertiesFileAppenderConfiguration(File propertyFile) <strong class="jxr_keyword">throws</strong> IOException, ParserConfigurationException, SAXException {
<a class="jxr_linenumber" name="L172" href="#L172">172</a>     Map result = <strong class="jxr_keyword">new</strong> HashMap();
<a class="jxr_linenumber" name="L173" href="#L173">173</a>     String appenderPrefix = <span class="jxr_string">"log4j.appender"</span>;
<a class="jxr_linenumber" name="L174" href="#L174">174</a>     Properties props = <strong class="jxr_keyword">new</strong> Properties();
<a class="jxr_linenumber" name="L175" href="#L175">175</a>     FileInputStream inputStream = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L176" href="#L176">176</a>     <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="L177" href="#L177">177</a>       inputStream = <strong class="jxr_keyword">new</strong> FileInputStream(propertyFile);
<a class="jxr_linenumber" name="L178" href="#L178">178</a>       props.load(inputStream);
<a class="jxr_linenumber" name="L179" href="#L179">179</a>       Enumeration propertyNames = props.propertyNames();
<a class="jxr_linenumber" name="L180" href="#L180">180</a>       Map appenders = <strong class="jxr_keyword">new</strong> HashMap();
<a class="jxr_linenumber" name="L181" href="#L181">181</a>       <strong class="jxr_keyword">while</strong> (propertyNames.hasMoreElements()) {
<a class="jxr_linenumber" name="L182" href="#L182">182</a>         String propertyName = propertyNames.nextElement().toString();
<a class="jxr_linenumber" name="L183" href="#L183">183</a>         <strong class="jxr_keyword">if</strong> (propertyName.startsWith(appenderPrefix)) {
<a class="jxr_linenumber" name="L184" href="#L184">184</a>           String value = propertyName.substring(appenderPrefix.length() + 1);
<a class="jxr_linenumber" name="L185" href="#L185">185</a>           <strong class="jxr_keyword">if</strong> (value.indexOf(<span class="jxr_string">"."</span>) == -1) {
<a class="jxr_linenumber" name="L186" href="#L186">186</a>             <em class="jxr_comment">//no sub-values - this entry is the appender name &amp; class</em>
<a class="jxr_linenumber" name="L187" href="#L187">187</a>             appenders.put(value, props.getProperty(propertyName).trim());
<a class="jxr_linenumber" name="L188" href="#L188">188</a>           }
<a class="jxr_linenumber" name="L189" href="#L189">189</a>         }
<a class="jxr_linenumber" name="L190" href="#L190">190</a>       }
<a class="jxr_linenumber" name="L191" href="#L191">191</a>       <strong class="jxr_keyword">for</strong> (Iterator iter = appenders.entrySet().iterator();iter.hasNext();) {
<a class="jxr_linenumber" name="L192" href="#L192">192</a>         Map.Entry appenderEntry = (Map.Entry)iter.next();
<a class="jxr_linenumber" name="L193" href="#L193">193</a>         String appenderName = appenderEntry.getKey().toString();
<a class="jxr_linenumber" name="L194" href="#L194">194</a>         String appenderClassName = appenderEntry.getValue().toString();
<a class="jxr_linenumber" name="L195" href="#L195">195</a>         <strong class="jxr_keyword">if</strong> (appenderClassName.toLowerCase(Locale.ENGLISH).endsWith(<span class="jxr_string">"fileappender"</span>)) {
<a class="jxr_linenumber" name="L196" href="#L196">196</a>           String layout = props.getProperty(appenderPrefix + <span class="jxr_string">"."</span> + appenderName + <span class="jxr_string">".layout"</span>);
<a class="jxr_linenumber" name="L197" href="#L197">197</a>           <strong class="jxr_keyword">if</strong> (layout != <strong class="jxr_keyword">null</strong> &amp;&amp; layout.trim().equals(<span class="jxr_string">"org.apache.log4j.PatternLayout"</span>)) {
<a class="jxr_linenumber" name="L198" href="#L198">198</a>             String conversion = props.getProperty(appenderPrefix + <span class="jxr_string">"."</span> + appenderName + <span class="jxr_string">".layout.ConversionPattern"</span>);
<a class="jxr_linenumber" name="L199" href="#L199">199</a>             String file = props.getProperty(appenderPrefix + <span class="jxr_string">"."</span> + appenderName + <span class="jxr_string">".File"</span>);
<a class="jxr_linenumber" name="L200" href="#L200">200</a>             <strong class="jxr_keyword">if</strong> (conversion != <strong class="jxr_keyword">null</strong> &amp;&amp; file != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L201" href="#L201">201</a>               Map entry = <strong class="jxr_keyword">new</strong> HashMap();
<a class="jxr_linenumber" name="L202" href="#L202">202</a>               entry.put(<span class="jxr_string">"file"</span>, file.trim());
<a class="jxr_linenumber" name="L203" href="#L203">203</a>               entry.put(<span class="jxr_string">"conversion"</span>, conversion.trim());
<a class="jxr_linenumber" name="L204" href="#L204">204</a>               result.put(appenderName, entry);
<a class="jxr_linenumber" name="L205" href="#L205">205</a>             }
<a class="jxr_linenumber" name="L206" href="#L206">206</a>           }
<a class="jxr_linenumber" name="L207" href="#L207">207</a>         }
<a class="jxr_linenumber" name="L208" href="#L208">208</a>       }
<a class="jxr_linenumber" name="L209" href="#L209">209</a>           <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="L210" href="#L210">210</a> <em class="jxr_comment">          example:</em>
<a class="jxr_linenumber" name="L211" href="#L211">211</a> <em class="jxr_comment">          log4j.appender.R=org.apache.log4j.RollingFileAppender</em>
<a class="jxr_linenumber" name="L212" href="#L212">212</a> <em class="jxr_comment">          log4j.appender.R.File=${catalina.base}/logs/tomcat.log</em>
<a class="jxr_linenumber" name="L213" href="#L213">213</a> <em class="jxr_comment">          log4j.appender.R.MaxFileSize=10MB</em>
<a class="jxr_linenumber" name="L214" href="#L214">214</a> <em class="jxr_comment">          log4j.appender.R.MaxBackupIndex=10</em>
<a class="jxr_linenumber" name="L215" href="#L215">215</a> <em class="jxr_comment">          log4j.appender.R.layout=org.apache.log4j.PatternLayout</em>
<a class="jxr_linenumber" name="L216" href="#L216">216</a> <em class="jxr_comment">          log4j.appender.R.layout.ConversionPattern=%d - %p %t %c - %m%n</em>
<a class="jxr_linenumber" name="L217" href="#L217">217</a> <em class="jxr_comment">           */</em>
<a class="jxr_linenumber" name="L218" href="#L218">218</a>     }
<a class="jxr_linenumber" name="L219" href="#L219">219</a>     <strong class="jxr_keyword">catch</strong> (IOException ioe) {
<a class="jxr_linenumber" name="L220" href="#L220">220</a>     }
<a class="jxr_linenumber" name="L221" href="#L221">221</a>     <strong class="jxr_keyword">finally</strong> {
<a class="jxr_linenumber" name="L222" href="#L222">222</a>       <strong class="jxr_keyword">if</strong> (inputStream != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L223" href="#L223">223</a>         inputStream.close();
<a class="jxr_linenumber" name="L224" href="#L224">224</a>       }
<a class="jxr_linenumber" name="L225" href="#L225">225</a>     }
<a class="jxr_linenumber" name="L226" href="#L226">226</a>     <em class="jxr_comment">//don't return null</em>
<a class="jxr_linenumber" name="L227" href="#L227">227</a>     <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="L228" href="#L228">228</a>   }
<a class="jxr_linenumber" name="L229" href="#L229">229</a> 
<a class="jxr_linenumber" name="L230" href="#L230">230</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> Map getXMLFileAppenderConfiguration(File file) <strong class="jxr_keyword">throws</strong> IOException, ParserConfigurationException, SAXException {
<a class="jxr_linenumber" name="L231" href="#L231">231</a>     InputStream stream = file.toURI().toURL().openStream();
<a class="jxr_linenumber" name="L232" href="#L232">232</a>     Map result = <strong class="jxr_keyword">new</strong> HashMap();
<a class="jxr_linenumber" name="L233" href="#L233">233</a>     <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="L234" href="#L234">234</a>       InputSource src = <strong class="jxr_keyword">new</strong> InputSource(stream);
<a class="jxr_linenumber" name="L235" href="#L235">235</a>       src.setSystemId(file.toURI().toURL().toString());
<a class="jxr_linenumber" name="L236" href="#L236">236</a>       DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
<a class="jxr_linenumber" name="L237" href="#L237">237</a>       DocumentBuilder docBuilder = dbf.newDocumentBuilder();
<a class="jxr_linenumber" name="L238" href="#L238">238</a> 
<a class="jxr_linenumber" name="L239" href="#L239">239</a>       docBuilder.setErrorHandler(<strong class="jxr_keyword">new</strong> SAXErrorHandler());
<a class="jxr_linenumber" name="L240" href="#L240">240</a>       docBuilder.setEntityResolver(<strong class="jxr_keyword">new</strong> Log4jEntityResolver());
<a class="jxr_linenumber" name="L241" href="#L241">241</a>       Document doc = docBuilder.parse(src);
<a class="jxr_linenumber" name="L242" href="#L242">242</a>       NodeList appenders = doc.getElementsByTagName(<span class="jxr_string">"appender"</span>);
<a class="jxr_linenumber" name="L243" href="#L243">243</a>       <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; appenders.getLength(); i++) {
<a class="jxr_linenumber" name="L244" href="#L244">244</a>         Node appender = appenders.item(i);
<a class="jxr_linenumber" name="L245" href="#L245">245</a>         NamedNodeMap appenderAttributes = appender.getAttributes();
<a class="jxr_linenumber" name="L246" href="#L246">246</a> <em class="jxr_comment">//        Class appenderClass = Class.forName(map.getNamedItem("class").getNodeValue());</em>
<a class="jxr_linenumber" name="L247" href="#L247">247</a>         Node appenderClass = appenderAttributes.getNamedItem(<span class="jxr_string">"class"</span>);
<a class="jxr_linenumber" name="L248" href="#L248">248</a>         <strong class="jxr_keyword">if</strong> (appenderAttributes.getNamedItem(<span class="jxr_string">"name"</span>) != <strong class="jxr_keyword">null</strong> &amp;&amp; appenderClass != <strong class="jxr_keyword">null</strong> &amp;&amp; appenderClass.getNodeValue() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L249" href="#L249">249</a>           <em class="jxr_comment">//all log4j fileappenders end in fileappender..if a custom fileappender also ends in fileappender and uses the same dom nodes to be loaded,</em>
<a class="jxr_linenumber" name="L250" href="#L250">250</a>           <em class="jxr_comment">//try to parse the nodes as well</em>
<a class="jxr_linenumber" name="L251" href="#L251">251</a>           <strong class="jxr_keyword">if</strong> (appenderClass.getNodeValue().toLowerCase(Locale.ENGLISH).endsWith(<span class="jxr_string">"fileappender"</span>)) {
<a class="jxr_linenumber" name="L252" href="#L252">252</a>             String appenderName = appenderAttributes.getNamedItem(<span class="jxr_string">"name"</span>).getNodeValue();
<a class="jxr_linenumber" name="L253" href="#L253">253</a>             <em class="jxr_comment">//subclass of FileAppender - add it</em>
<a class="jxr_linenumber" name="L254" href="#L254">254</a>             Map entry = <strong class="jxr_keyword">new</strong> HashMap();
<a class="jxr_linenumber" name="L255" href="#L255">255</a>             NodeList appenderChildren = appender.getChildNodes();
<a class="jxr_linenumber" name="L256" href="#L256">256</a>             <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> j = 0; j &lt; appenderChildren.getLength(); j++) {
<a class="jxr_linenumber" name="L257" href="#L257">257</a>               Node appenderChild = appenderChildren.item(j);
<a class="jxr_linenumber" name="L258" href="#L258">258</a>               <strong class="jxr_keyword">if</strong> (appenderChild.getNodeName().equals(<span class="jxr_string">"param"</span>) &amp;&amp; appenderChild.hasAttributes()) {
<a class="jxr_linenumber" name="L259" href="#L259">259</a>                 Node fileNameNode = appenderChild.getAttributes().getNamedItem(<span class="jxr_string">"name"</span>);
<a class="jxr_linenumber" name="L260" href="#L260">260</a>                 <strong class="jxr_keyword">if</strong> (fileNameNode != <strong class="jxr_keyword">null</strong> &amp;&amp; fileNameNode.getNodeValue().equalsIgnoreCase(<span class="jxr_string">"file"</span>)) {
<a class="jxr_linenumber" name="L261" href="#L261">261</a>                   Node fileValueNode = appenderChild.getAttributes().getNamedItem(<span class="jxr_string">"value"</span>);
<a class="jxr_linenumber" name="L262" href="#L262">262</a>                   <strong class="jxr_keyword">if</strong> (fileValueNode != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L263" href="#L263">263</a>                     entry.put(<span class="jxr_string">"file"</span>, fileValueNode.getNodeValue());
<a class="jxr_linenumber" name="L264" href="#L264">264</a>                   }
<a class="jxr_linenumber" name="L265" href="#L265">265</a>                 }
<a class="jxr_linenumber" name="L266" href="#L266">266</a>               }
<a class="jxr_linenumber" name="L267" href="#L267">267</a>               <strong class="jxr_keyword">if</strong> (appenderChild.getNodeName().equalsIgnoreCase(<span class="jxr_string">"layout"</span>) &amp;&amp; appenderChild.hasAttributes()) {
<a class="jxr_linenumber" name="L268" href="#L268">268</a>                 NamedNodeMap layoutAttributes = appenderChild.getAttributes();
<a class="jxr_linenumber" name="L269" href="#L269">269</a>                 Node layoutNode = layoutAttributes.getNamedItem(<span class="jxr_string">"class"</span>);
<a class="jxr_linenumber" name="L270" href="#L270">270</a>                 <strong class="jxr_keyword">if</strong> (layoutNode != <strong class="jxr_keyword">null</strong> &amp;&amp; layoutNode.getNodeValue() != <strong class="jxr_keyword">null</strong> &amp;&amp; layoutNode.getNodeValue().equalsIgnoreCase(<span class="jxr_string">"org.apache.log4j.PatternLayout"</span>)) {
<a class="jxr_linenumber" name="L271" href="#L271">271</a>                   NodeList layoutChildren = appenderChild.getChildNodes();
<a class="jxr_linenumber" name="L272" href="#L272">272</a>                   <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> k = 0; k &lt; layoutChildren.getLength(); k++) {
<a class="jxr_linenumber" name="L273" href="#L273">273</a>                     Node layoutChild = layoutChildren.item(k);
<a class="jxr_linenumber" name="L274" href="#L274">274</a>                     <strong class="jxr_keyword">if</strong> (layoutChild.getNodeName().equals(<span class="jxr_string">"param"</span>) &amp;&amp; layoutChild.hasAttributes()) {
<a class="jxr_linenumber" name="L275" href="#L275">275</a>                       Node layoutName = layoutChild.getAttributes().getNamedItem(<span class="jxr_string">"name"</span>);
<a class="jxr_linenumber" name="L276" href="#L276">276</a>                       <strong class="jxr_keyword">if</strong> (layoutName != <strong class="jxr_keyword">null</strong> &amp;&amp; layoutName.getNodeValue() != <strong class="jxr_keyword">null</strong> &amp;&amp; layoutName.getNodeValue().equalsIgnoreCase(<span class="jxr_string">"conversionpattern"</span>)) {
<a class="jxr_linenumber" name="L277" href="#L277">277</a>                         Node conversionValue = layoutChild.getAttributes().getNamedItem(<span class="jxr_string">"value"</span>);
<a class="jxr_linenumber" name="L278" href="#L278">278</a>                         <strong class="jxr_keyword">if</strong> (conversionValue != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L279" href="#L279">279</a>                           entry.put(<span class="jxr_string">"conversion"</span>, conversionValue.getNodeValue());
<a class="jxr_linenumber" name="L280" href="#L280">280</a>                         }
<a class="jxr_linenumber" name="L281" href="#L281">281</a>                       }
<a class="jxr_linenumber" name="L282" href="#L282">282</a>                     }
<a class="jxr_linenumber" name="L283" href="#L283">283</a>                   }
<a class="jxr_linenumber" name="L284" href="#L284">284</a>                 }
<a class="jxr_linenumber" name="L285" href="#L285">285</a>               }
<a class="jxr_linenumber" name="L286" href="#L286">286</a>             }
<a class="jxr_linenumber" name="L287" href="#L287">287</a>             result.put(appenderName, entry);
<a class="jxr_linenumber" name="L288" href="#L288">288</a>           }
<a class="jxr_linenumber" name="L289" href="#L289">289</a>         }
<a class="jxr_linenumber" name="L290" href="#L290">290</a>       }
<a class="jxr_linenumber" name="L291" href="#L291">291</a>     } <strong class="jxr_keyword">finally</strong> {
<a class="jxr_linenumber" name="L292" href="#L292">292</a>       stream.close();
<a class="jxr_linenumber" name="L293" href="#L293">293</a>     }
<a class="jxr_linenumber" name="L294" href="#L294">294</a>     MessageCenter.getInstance().getLogger().info(<span class="jxr_string">"getXMLFileAppenderConfiguration for file: "</span> + file + <span class="jxr_string">", result: "</span> + result);
<a class="jxr_linenumber" name="L295" href="#L295">295</a>     <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="L296" href="#L296">296</a>   }
<a class="jxr_linenumber" name="L297" href="#L297">297</a> }
</pre>
<hr/>
<div id="footer">Copyright &#169; 2002&#x2013;2018 <a href="https://www.apache.org">Apache Software Foundation</a>. All rights reserved.</div>
</body>
</html>
