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

<a name="1" href="#1">1</a>   <em class="jxr_comment">/*</em>
<a name="2" href="#2">2</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one or more</em>
<a name="3" href="#3">3</a>   <em class="jxr_comment"> * contributor license agreements.  See the NOTICE file distributed with</em>
<a name="4" href="#4">4</a>   <em class="jxr_comment"> * this work for additional information regarding copyright ownership.</em>
<a name="5" href="#5">5</a>   <em class="jxr_comment"> * The ASF licenses this file to You under the Apache License, Version 2.0</em>
<a name="6" href="#6">6</a>   <em class="jxr_comment"> * (the "License"); you may not use this file except in compliance with</em>
<a name="7" href="#7">7</a>   <em class="jxr_comment"> * the License.  You may obtain a copy of the License at</em>
<a name="8" href="#8">8</a>   <em class="jxr_comment"> * </em>
<a name="9" href="#9">9</a>   <em class="jxr_comment"> *      <a href="http://www.apache.org/licenses/LICENSE-2.0" target="alexandria_uri">http://www.apache.org/licenses/LICENSE-2.0</a></em>
<a name="10" href="#10">10</a>  <em class="jxr_comment"> * </em>
<a name="11" href="#11">11</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing, software</em>
<a name="12" href="#12">12</a>  <em class="jxr_comment"> * distributed under the License is distributed on an "AS IS" BASIS,</em>
<a name="13" href="#13">13</a>  <em class="jxr_comment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</em>
<a name="14" href="#14">14</a>  <em class="jxr_comment"> * See the License for the specific language governing permissions and</em>
<a name="15" href="#15">15</a>  <em class="jxr_comment"> * limitations under the License.</em>
<a name="16" href="#16">16</a>  <em class="jxr_comment"> */</em>
<a name="17" href="#17">17</a>  
<a name="18" href="#18">18</a>  <em class="jxr_comment">// Contributors:   Mathias Bogaert</em>
<a name="19" href="#19">19</a>  
<a name="20" href="#20">20</a>  <strong class="jxr_keyword">package</strong> org.apache.log4j.xml;
<a name="21" href="#21">21</a>  
<a name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.Layout;
<a name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.helpers.Transform;
<a name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.spi.LocationInfo;
<a name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.spi.LoggingEvent;
<a name="26" href="#26">26</a>  
<a name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> java.util.Set;
<a name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> java.util.Arrays;
<a name="29" href="#29">29</a>  
<a name="30" href="#30">30</a>  <em class="jxr_javadoccomment">/**</em>
<a name="31" href="#31">31</a>  <em class="jxr_javadoccomment"> * The output of the XMLLayout consists of a series of log4j:event</em>
<a name="32" href="#32">32</a>  <em class="jxr_javadoccomment"> * elements as defined in the &lt;a</em>
<a name="33" href="#33">33</a>  <em class="jxr_javadoccomment"> * href="log4j.dtd"&gt;log4j.dtd&lt;/a&gt;. It does not output a</em>
<a name="34" href="#34">34</a>  <em class="jxr_javadoccomment"> * complete well-formed XML file. The output is designed to be</em>
<a name="35" href="#35">35</a>  <em class="jxr_javadoccomment"> * included as an &lt;em&gt;external entity&lt;/em&gt; in a separate file to form</em>
<a name="36" href="#36">36</a>  <em class="jxr_javadoccomment"> * a correct XML file.</em>
<a name="37" href="#37">37</a>  <em class="jxr_javadoccomment"> *</em>
<a name="38" href="#38">38</a>  <em class="jxr_javadoccomment"> * &lt;p&gt;For example, if &lt;code&gt;abc&lt;/code&gt; is the name of the file where</em>
<a name="39" href="#39">39</a>  <em class="jxr_javadoccomment"> * the XMLLayout ouput goes, then a well-formed XML file would be:</em>
<a name="40" href="#40">40</a>  <em class="jxr_javadoccomment"> *</em>
<a name="41" href="#41">41</a>  <em class="jxr_javadoccomment">  &lt;pre&gt;</em>
<a name="42" href="#42">42</a>  <em class="jxr_javadoccomment">   &amp;lt;?xml version="1.0" ?&amp;gt;</em>
<a name="43" href="#43">43</a>  <em class="jxr_javadoccomment"> </em>
<a name="44" href="#44">44</a>  <em class="jxr_javadoccomment">  &amp;lt;!DOCTYPE log4j:eventSet PUBLIC "-//APACHE//DTD LOG4J 1.2//EN" "log4j.dtd" [&amp;lt;!ENTITY data SYSTEM "abc"&amp;gt;]&amp;gt;</em>
<a name="45" href="#45">45</a>  <em class="jxr_javadoccomment"> </em>
<a name="46" href="#46">46</a>  <em class="jxr_javadoccomment">  &amp;lt;log4j:eventSet version="1.2" xmlns:log4j="<a href="http://jakarta.apache.org/log4j/" target="alexandria_uri">http://jakarta.apache.org/log4j/</a>"&amp;gt;</em>
<a name="47" href="#47">47</a>  <em class="jxr_javadoccomment"> 	&amp;nbsp;&amp;nbsp;&amp;data;</em>
<a name="48" href="#48">48</a>  <em class="jxr_javadoccomment">  &amp;lt;/log4j:eventSet&amp;gt;</em>
<a name="49" href="#49">49</a>  <em class="jxr_javadoccomment">  &lt;/pre&gt;</em>
<a name="50" href="#50">50</a>  <em class="jxr_javadoccomment"> </em>
<a name="51" href="#51">51</a>  <em class="jxr_javadoccomment"> * &lt;p&gt;This approach enforces the independence of the XMLLayout and the</em>
<a name="52" href="#52">52</a>  <em class="jxr_javadoccomment"> * appender where it is embedded.</em>
<a name="53" href="#53">53</a>  <em class="jxr_javadoccomment"> *</em>
<a name="54" href="#54">54</a>  <em class="jxr_javadoccomment"> * &lt;p&gt;The &lt;code&gt;version&lt;/code&gt; attribute helps components to correctly</em>
<a name="55" href="#55">55</a>  <em class="jxr_javadoccomment"> * intrepret output generated by XMLLayout. The value of this</em>
<a name="56" href="#56">56</a>  <em class="jxr_javadoccomment"> * attribute should be "1.1" for output generated by log4j versions</em>
<a name="57" href="#57">57</a>  <em class="jxr_javadoccomment"> * prior to log4j 1.2 (final release) and "1.2" for relase 1.2 and</em>
<a name="58" href="#58">58</a>  <em class="jxr_javadoccomment"> * later.</em>
<a name="59" href="#59">59</a>  <em class="jxr_javadoccomment"> *</em>
<a name="60" href="#60">60</a>  <em class="jxr_javadoccomment"> * Appenders using this layout should have their encoding</em>
<a name="61" href="#61">61</a>  <em class="jxr_javadoccomment"> * set to UTF-8 or UTF-16, otherwise events containing</em>
<a name="62" href="#62">62</a>  <em class="jxr_javadoccomment"> * non ASCII characters could result in corrupted</em>
<a name="63" href="#63">63</a>  <em class="jxr_javadoccomment"> * log files. </em>
<a name="64" href="#64">64</a>  <em class="jxr_javadoccomment"> *</em>
<a name="65" href="#65">65</a>  <em class="jxr_javadoccomment"> * @author Ceki  G&amp;uuml;lc&amp;uuml;</em>
<a name="66" href="#66">66</a>  <em class="jxr_javadoccomment"> * @since 0.9.0 </em>
<a name="67" href="#67">67</a>  <em class="jxr_javadoccomment"> * */</em>
<a name="68" href="#68">68</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/log4j/xml/XMLLayout.html">XMLLayout</a> <strong class="jxr_keyword">extends</strong> <a href="../../../../org/apache/log4j/Layout.html">Layout</a> {
<a name="69" href="#69">69</a>  
<a name="70" href="#70">70</a>    <strong class="jxr_keyword">private</strong>  <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> DEFAULT_SIZE = 256;
<a name="71" href="#71">71</a>    <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> UPPER_LIMIT = 2048;
<a name="72" href="#72">72</a>  
<a name="73" href="#73">73</a>    <strong class="jxr_keyword">private</strong> StringBuffer buf = <strong class="jxr_keyword">new</strong> StringBuffer(DEFAULT_SIZE);
<a name="74" href="#74">74</a>    <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> locationInfo = false;
<a name="75" href="#75">75</a>    <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> properties = false;
<a name="76" href="#76">76</a>   
<a name="77" href="#77">77</a>    <em class="jxr_javadoccomment">/**</em>
<a name="78" href="#78">78</a>  <em class="jxr_javadoccomment">   * The &lt;b&gt;LocationInfo&lt;/b&gt; option takes a boolean value. By default,</em>
<a name="79" href="#79">79</a>  <em class="jxr_javadoccomment">   * it is set to false which means there will be no location</em>
<a name="80" href="#80">80</a>  <em class="jxr_javadoccomment">   * information output by this layout. If the the option is set to</em>
<a name="81" href="#81">81</a>  <em class="jxr_javadoccomment">   * true, then the file name and line number of the statement at the</em>
<a name="82" href="#82">82</a>  <em class="jxr_javadoccomment">   * origin of the log statement will be output.</em>
<a name="83" href="#83">83</a>  <em class="jxr_javadoccomment">   *</em>
<a name="84" href="#84">84</a>  <em class="jxr_javadoccomment">   * &lt;p&gt;If you are embedding this layout within an {@link</em>
<a name="85" href="#85">85</a>  <em class="jxr_javadoccomment">   * org.apache.log4j.net.SMTPAppender} then make sure to set the</em>
<a name="86" href="#86">86</a>  <em class="jxr_javadoccomment">   * &lt;b&gt;LocationInfo&lt;/b&gt; option of that appender as well.</em>
<a name="87" href="#87">87</a>  <em class="jxr_javadoccomment">   * */</em>
<a name="88" href="#88">88</a>    <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setLocationInfo(<strong class="jxr_keyword">boolean</strong> flag) {
<a name="89" href="#89">89</a>      locationInfo = flag;
<a name="90" href="#90">90</a>    }
<a name="91" href="#91">91</a>    
<a name="92" href="#92">92</a>    <em class="jxr_javadoccomment">/**</em>
<a name="93" href="#93">93</a>  <em class="jxr_javadoccomment">     Returns the current value of the &lt;b&gt;LocationInfo&lt;/b&gt; option.</em>
<a name="94" href="#94">94</a>  <em class="jxr_javadoccomment">   */</em>
<a name="95" href="#95">95</a>    <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> getLocationInfo() {
<a name="96" href="#96">96</a>      <strong class="jxr_keyword">return</strong> locationInfo;
<a name="97" href="#97">97</a>    }
<a name="98" href="#98">98</a>  
<a name="99" href="#99">99</a>      <em class="jxr_javadoccomment">/**</em>
<a name="100" href="#100">100</a> <em class="jxr_javadoccomment">     * Sets whether MDC key-value pairs should be output, default false.</em>
<a name="101" href="#101">101</a> <em class="jxr_javadoccomment">     * @param flag new value.</em>
<a name="102" href="#102">102</a> <em class="jxr_javadoccomment">     * @since 1.2.15</em>
<a name="103" href="#103">103</a> <em class="jxr_javadoccomment">     */</em>
<a name="104" href="#104">104</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setProperties(<strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">boolean</strong> flag) {
<a name="105" href="#105">105</a>       properties = flag;
<a name="106" href="#106">106</a>   }
<a name="107" href="#107">107</a> 
<a name="108" href="#108">108</a>     <em class="jxr_javadoccomment">/**</em>
<a name="109" href="#109">109</a> <em class="jxr_javadoccomment">     * Gets whether MDC key-value pairs should be output.</em>
<a name="110" href="#110">110</a> <em class="jxr_javadoccomment">     * @return true if MDC key-value pairs are output.</em>
<a name="111" href="#111">111</a> <em class="jxr_javadoccomment">     * @since 1.2.15</em>
<a name="112" href="#112">112</a> <em class="jxr_javadoccomment">     */</em>
<a name="113" href="#113">113</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> getProperties() {
<a name="114" href="#114">114</a>       <strong class="jxr_keyword">return</strong> properties;
<a name="115" href="#115">115</a>   }
<a name="116" href="#116">116</a> 
<a name="117" href="#117">117</a>   <em class="jxr_javadoccomment">/**</em><em class="jxr_javadoccomment"> No options to activate. */</em>
<a name="118" href="#118">118</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> activateOptions() {
<a name="119" href="#119">119</a>   }
<a name="120" href="#120">120</a> 
<a name="121" href="#121">121</a> 
<a name="122" href="#122">122</a>   <em class="jxr_javadoccomment">/**</em>
<a name="123" href="#123">123</a> <em class="jxr_javadoccomment">   * Formats a {@link org.apache.log4j.spi.LoggingEvent} in conformance with the log4j.dtd.</em>
<a name="124" href="#124">124</a> <em class="jxr_javadoccomment">   * */</em>
<a name="125" href="#125">125</a>   <strong class="jxr_keyword">public</strong> String format(<strong class="jxr_keyword">final</strong> <a href="../../../../org/apache/log4j/spi/LoggingEvent.html">LoggingEvent</a> event) {
<a name="126" href="#126">126</a> 
<a name="127" href="#127">127</a>     <em class="jxr_comment">// Reset working buffer. If the buffer is too large, then we need a new</em>
<a name="128" href="#128">128</a>     <em class="jxr_comment">// one in order to avoid the penalty of creating a large array.</em>
<a name="129" href="#129">129</a>     <strong class="jxr_keyword">if</strong>(buf.capacity() &gt; UPPER_LIMIT) {
<a name="130" href="#130">130</a>       buf = <strong class="jxr_keyword">new</strong> StringBuffer(DEFAULT_SIZE);
<a name="131" href="#131">131</a>     } <strong class="jxr_keyword">else</strong> {
<a name="132" href="#132">132</a>       buf.setLength(0);
<a name="133" href="#133">133</a>     }
<a name="134" href="#134">134</a>     
<a name="135" href="#135">135</a>     <em class="jxr_comment">// We yield to the \r\n heresy.</em>
<a name="136" href="#136">136</a> 
<a name="137" href="#137">137</a>     buf.append(<span class="jxr_string">"&lt;log4j:event logger=\&quot;"</span>);
<a name="138" href="#138">138</a>     buf.append(Transform.escapeTags(event.getLoggerName()));
<a name="139" href="#139">139</a>     buf.append(<span class="jxr_string">"\&quot; timestamp=\&quot;"</span>);
<a name="140" href="#140">140</a>     buf.append(event.timeStamp);
<a name="141" href="#141">141</a>     buf.append(<span class="jxr_string">"\&quot; level=\&quot;"</span>);
<a name="142" href="#142">142</a>     buf.append(Transform.escapeTags(String.valueOf(event.getLevel())));
<a name="143" href="#143">143</a>     buf.append(<span class="jxr_string">"\&quot; thread=\&quot;"</span>);
<a name="144" href="#144">144</a>     buf.append(Transform.escapeTags(event.getThreadName()));
<a name="145" href="#145">145</a>     buf.append(<span class="jxr_string">"\&quot;&gt;\r\n"</span>);
<a name="146" href="#146">146</a> 
<a name="147" href="#147">147</a>     buf.append(<span class="jxr_string">"&lt;log4j:message&gt;&lt;![CDATA["</span>);
<a name="148" href="#148">148</a>     <em class="jxr_comment">// Append the rendered message. Also make sure to escape any</em>
<a name="149" href="#149">149</a>     <em class="jxr_comment">// existing CDATA sections.</em>
<a name="150" href="#150">150</a>     Transform.appendEscapingCDATA(buf, event.getRenderedMessage());
<a name="151" href="#151">151</a>     buf.append(<span class="jxr_string">"]]&gt;&lt;/log4j:message&gt;\r\n"</span>);       
<a name="152" href="#152">152</a>     
<a name="153" href="#153">153</a>     String ndc = event.getNDC();
<a name="154" href="#154">154</a>     <strong class="jxr_keyword">if</strong>(ndc != <strong class="jxr_keyword">null</strong>) {
<a name="155" href="#155">155</a>       buf.append(<span class="jxr_string">"&lt;log4j:NDC&gt;&lt;![CDATA["</span>);
<a name="156" href="#156">156</a>       Transform.appendEscapingCDATA(buf, ndc);
<a name="157" href="#157">157</a>       buf.append(<span class="jxr_string">"]]&gt;&lt;/log4j:NDC&gt;\r\n"</span>);       
<a name="158" href="#158">158</a>     }
<a name="159" href="#159">159</a>     
<a name="160" href="#160">160</a>     String[] s = event.getThrowableStrRep();
<a name="161" href="#161">161</a>     <strong class="jxr_keyword">if</strong>(s != <strong class="jxr_keyword">null</strong>) {
<a name="162" href="#162">162</a>       buf.append(<span class="jxr_string">"&lt;log4j:throwable&gt;&lt;![CDATA["</span>);
<a name="163" href="#163">163</a>       <strong class="jxr_keyword">for</strong>(<strong class="jxr_keyword">int</strong> i = 0; i &lt; s.length; i++) {
<a name="164" href="#164">164</a>           Transform.appendEscapingCDATA(buf, s[i]);
<a name="165" href="#165">165</a> 	      buf.append(<span class="jxr_string">"\r\n"</span>);
<a name="166" href="#166">166</a>       }
<a name="167" href="#167">167</a>       buf.append(<span class="jxr_string">"]]&gt;&lt;/log4j:throwable&gt;\r\n"</span>);
<a name="168" href="#168">168</a>     }
<a name="169" href="#169">169</a>     
<a name="170" href="#170">170</a>     <strong class="jxr_keyword">if</strong>(locationInfo) { 
<a name="171" href="#171">171</a>       <a href="../../../../org/apache/log4j/spi/LocationInfo.html">LocationInfo</a> locationInfo = event.getLocationInformation();	
<a name="172" href="#172">172</a>       buf.append(<span class="jxr_string">"&lt;log4j:locationInfo class=\&quot;"</span>);
<a name="173" href="#173">173</a>       buf.append(Transform.escapeTags(locationInfo.getClassName()));
<a name="174" href="#174">174</a>       buf.append(<span class="jxr_string">"\&quot; method=\&quot;"</span>);
<a name="175" href="#175">175</a>       buf.append(Transform.escapeTags(locationInfo.getMethodName()));
<a name="176" href="#176">176</a>       buf.append(<span class="jxr_string">"\&quot; file=\&quot;"</span>);
<a name="177" href="#177">177</a>       buf.append(Transform.escapeTags(locationInfo.getFileName()));
<a name="178" href="#178">178</a>       buf.append(<span class="jxr_string">"\&quot; line=\&quot;"</span>);
<a name="179" href="#179">179</a>       buf.append(locationInfo.getLineNumber());
<a name="180" href="#180">180</a>       buf.append(<span class="jxr_string">"\&quot;/&gt;\r\n"</span>);
<a name="181" href="#181">181</a>     }
<a name="182" href="#182">182</a> 
<a name="183" href="#183">183</a>     <strong class="jxr_keyword">if</strong> (properties) {
<a name="184" href="#184">184</a>         Set keySet = event.getPropertyKeySet();
<a name="185" href="#185">185</a>         <strong class="jxr_keyword">if</strong> (keySet.size() &gt; 0) {
<a name="186" href="#186">186</a>             buf.append(<span class="jxr_string">"&lt;log4j:properties&gt;\r\n"</span>);
<a name="187" href="#187">187</a>             Object[] keys = keySet.toArray();
<a name="188" href="#188">188</a>             Arrays.sort(keys);
<a name="189" href="#189">189</a>             <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; keys.length; i++) {
<a name="190" href="#190">190</a>                 String key = keys[i].toString();
<a name="191" href="#191">191</a>                 Object val = event.getMDC(key);
<a name="192" href="#192">192</a>                 <strong class="jxr_keyword">if</strong> (val != <strong class="jxr_keyword">null</strong>) {
<a name="193" href="#193">193</a>                     buf.append(<span class="jxr_string">"&lt;log4j:data name=\&quot;"</span>);
<a name="194" href="#194">194</a>                     buf.append(Transform.escapeTags(key));
<a name="195" href="#195">195</a>                     buf.append(<span class="jxr_string">"\&quot; value=\&quot;"</span>);
<a name="196" href="#196">196</a>                     buf.append(Transform.escapeTags(String.valueOf(val)));
<a name="197" href="#197">197</a>                     buf.append(<span class="jxr_string">"\&quot;/&gt;\r\n"</span>);
<a name="198" href="#198">198</a>                 }
<a name="199" href="#199">199</a>             }
<a name="200" href="#200">200</a>             buf.append(<span class="jxr_string">"&lt;/log4j:properties&gt;\r\n"</span>);
<a name="201" href="#201">201</a>         }
<a name="202" href="#202">202</a>     }
<a name="203" href="#203">203</a>     
<a name="204" href="#204">204</a>     buf.append(<span class="jxr_string">"&lt;/log4j:event&gt;\r\n\r\n"</span>);
<a name="205" href="#205">205</a>     
<a name="206" href="#206">206</a>     <strong class="jxr_keyword">return</strong> buf.toString();
<a name="207" href="#207">207</a>   }
<a name="208" href="#208">208</a>   
<a name="209" href="#209">209</a>   <em class="jxr_javadoccomment">/**</em>
<a name="210" href="#210">210</a> <em class="jxr_javadoccomment">     The XMLLayout prints and does not ignore exceptions. Hence the</em>
<a name="211" href="#211">211</a> <em class="jxr_javadoccomment">     return value &lt;code&gt;false&lt;/code&gt;.</em>
<a name="212" href="#212">212</a> <em class="jxr_javadoccomment">  */</em>
<a name="213" href="#213">213</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> ignoresThrowable() {
<a name="214" href="#214">214</a>     <strong class="jxr_keyword">return</strong> false;
<a name="215" href="#215">215</a>   }
<a name="216" href="#216">216</a> }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

