<!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>LoggingEvent xref</title>
<link type="text/css" rel="stylesheet" href="../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../apidocs/org/apache/log4j/spi/LoggingEvent.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.spi;
<a name="19" href="#19">19</a>  
<a name="20" href="#20">20</a>  <strong class="jxr_keyword">import</strong> java.io.InterruptedIOException;
<a name="21" href="#21">21</a>  <strong class="jxr_keyword">import</strong> java.io.ObjectInputStream;
<a name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> java.io.ObjectOutputStream;
<a name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> java.lang.reflect.InvocationTargetException;
<a name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> java.lang.reflect.Method;
<a name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> java.util.Collections;
<a name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> java.util.HashMap;
<a name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> java.util.Hashtable;
<a name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> java.util.Map;
<a name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> java.util.Set;
<a name="30" href="#30">30</a>  
<a name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.Category;
<a name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.Level;
<a name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.MDC;
<a name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.NDC;
<a name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.Priority;
<a name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.helpers.Loader;
<a name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.helpers.LogLog;
<a name="38" href="#38">38</a>  
<a name="39" href="#39">39</a>  <em class="jxr_comment">// Contributors:   Nelson Minar &lt;nelson@monkey.org&gt;</em>
<a name="40" href="#40">40</a>  <em class="jxr_comment">//                 Wolf Siberski</em>
<a name="41" href="#41">41</a>  <em class="jxr_comment">//                 Anders Kristensen &lt;akristensen@dynamicsoft.com&gt;</em>
<a name="42" href="#42">42</a>  
<a name="43" href="#43">43</a>  <em class="jxr_javadoccomment">/**</em>
<a name="44" href="#44">44</a>  <em class="jxr_javadoccomment">   The internal representation of logging events. When an affirmative</em>
<a name="45" href="#45">45</a>  <em class="jxr_javadoccomment">   decision is made to log then a &lt;code&gt;LoggingEvent&lt;/code&gt; instance</em>
<a name="46" href="#46">46</a>  <em class="jxr_javadoccomment">   is created. This instance is passed around to the different log4j</em>
<a name="47" href="#47">47</a>  <em class="jxr_javadoccomment">   components.</em>
<a name="48" href="#48">48</a>  
<a name="49" href="#49">49</a>  <em class="jxr_javadoccomment">   &lt;p&gt;This class is of concern to those wishing to extend log4j.</em>
<a name="50" href="#50">50</a>  
<a name="51" href="#51">51</a>  <em class="jxr_javadoccomment">   @author Ceki G&amp;uuml;lc&amp;uuml;</em>
<a name="52" href="#52">52</a>  <em class="jxr_javadoccomment">   @author James P. Cakalic</em>
<a name="53" href="#53">53</a>  
<a name="54" href="#54">54</a>  <em class="jxr_javadoccomment">   @since 0.8.2 */</em>
<a name="55" href="#55">55</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/log4j/spi/LoggingEvent.html">LoggingEvent</a> implements java.io.Serializable {
<a name="56" href="#56">56</a>  
<a name="57" href="#57">57</a>    <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">long</strong> startTime = System.currentTimeMillis();
<a name="58" href="#58">58</a>  
<a name="59" href="#59">59</a>    <em class="jxr_javadoccomment">/**</em><em class="jxr_javadoccomment"> Fully qualified name of the calling category class. */</em>
<a name="60" href="#60">60</a>    <strong class="jxr_keyword">transient</strong> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> String fqnOfCategoryClass;
<a name="61" href="#61">61</a>  
<a name="62" href="#62">62</a>    <em class="jxr_javadoccomment">/**</em><em class="jxr_javadoccomment"> </em>
<a name="63" href="#63">63</a>  <em class="jxr_javadoccomment">   * The category of the logging event. This field is not serialized</em>
<a name="64" href="#64">64</a>  <em class="jxr_javadoccomment">   * for performance reasons.</em>
<a name="65" href="#65">65</a>  <em class="jxr_javadoccomment">   *</em>
<a name="66" href="#66">66</a>  <em class="jxr_javadoccomment">   * &lt;p&gt;It is set by the LoggingEvent constructor or set by a remote</em>
<a name="67" href="#67">67</a>  <em class="jxr_javadoccomment">   * entity after deserialization.</em>
<a name="68" href="#68">68</a>  <em class="jxr_javadoccomment">   * </em>
<a name="69" href="#69">69</a>  <em class="jxr_javadoccomment">   * @deprecated This field will be marked as private or be completely</em>
<a name="70" href="#70">70</a>  <em class="jxr_javadoccomment">   * removed in future releases. Please do not use it.</em>
<a name="71" href="#71">71</a>  <em class="jxr_javadoccomment">   * */</em>
<a name="72" href="#72">72</a>    <strong class="jxr_keyword">transient</strong> <strong class="jxr_keyword">private</strong> <a href="../../../../org/apache/log4j/Category.html">Category</a> logger;
<a name="73" href="#73">73</a>  
<a name="74" href="#74">74</a>    <em class="jxr_javadoccomment">/**</em><em class="jxr_javadoccomment"> </em>
<a name="75" href="#75">75</a>  <em class="jxr_javadoccomment">   * &lt;p&gt;The category (logger) name.</em>
<a name="76" href="#76">76</a>  <em class="jxr_javadoccomment">   *   </em>
<a name="77" href="#77">77</a>  <em class="jxr_javadoccomment">   * @deprecated This field will be marked as private in future</em>
<a name="78" href="#78">78</a>  <em class="jxr_javadoccomment">   * releases. Please do not access it directly. Use the {@link</em>
<a name="79" href="#79">79</a>  <em class="jxr_javadoccomment">   * #getLoggerName} method instead.</em>
<a name="80" href="#80">80</a>  
<a name="81" href="#81">81</a>  <em class="jxr_javadoccomment">   * */</em>
<a name="82" href="#82">82</a>    <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">public</strong> String categoryName;
<a name="83" href="#83">83</a>  
<a name="84" href="#84">84</a>    <em class="jxr_javadoccomment">/**</em><em class="jxr_javadoccomment"> </em>
<a name="85" href="#85">85</a>  <em class="jxr_javadoccomment">   * Level of logging event. Level cannot be serializable because it</em>
<a name="86" href="#86">86</a>  <em class="jxr_javadoccomment">   * is a flyweight.  Due to its special seralization it cannot be</em>
<a name="87" href="#87">87</a>  <em class="jxr_javadoccomment">   * declared final either.</em>
<a name="88" href="#88">88</a>  <em class="jxr_javadoccomment">   *   </em>
<a name="89" href="#89">89</a>  <em class="jxr_javadoccomment">   * &lt;p&gt; This field should not be accessed directly. You shoud use the</em>
<a name="90" href="#90">90</a>  <em class="jxr_javadoccomment">   * {@link #getLevel} method instead.</em>
<a name="91" href="#91">91</a>  <em class="jxr_javadoccomment">   *</em>
<a name="92" href="#92">92</a>  <em class="jxr_javadoccomment">   * @deprecated This field will be marked as private in future</em>
<a name="93" href="#93">93</a>  <em class="jxr_javadoccomment">   * releases. Please do not access it directly. Use the {@link</em>
<a name="94" href="#94">94</a>  <em class="jxr_javadoccomment">   * #getLevel} method instead.</em>
<a name="95" href="#95">95</a>  <em class="jxr_javadoccomment">   * */</em>
<a name="96" href="#96">96</a>    <strong class="jxr_keyword">transient</strong> <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/log4j/Priority.html">Priority</a> level;
<a name="97" href="#97">97</a>  
<a name="98" href="#98">98</a>    <em class="jxr_javadoccomment">/**</em><em class="jxr_javadoccomment"> The nested diagnostic context (NDC) of logging event. */</em>
<a name="99" href="#99">99</a>    <strong class="jxr_keyword">private</strong> String ndc;
<a name="100" href="#100">100</a> 
<a name="101" href="#101">101</a>   <em class="jxr_javadoccomment">/**</em><em class="jxr_javadoccomment"> The mapped diagnostic context (MDC) of logging event. */</em>
<a name="102" href="#102">102</a>   <strong class="jxr_keyword">private</strong> Hashtable mdcCopy;
<a name="103" href="#103">103</a> 
<a name="104" href="#104">104</a> 
<a name="105" href="#105">105</a>   <em class="jxr_javadoccomment">/**</em><em class="jxr_javadoccomment"> Have we tried to do an NDC lookup? If we did, there is no need</em>
<a name="106" href="#106">106</a> <em class="jxr_javadoccomment">   *  to do it again.  Note that its value is always false when</em>
<a name="107" href="#107">107</a> <em class="jxr_javadoccomment">   *  serialized. Thus, a receiving SocketNode will never use it's own</em>
<a name="108" href="#108">108</a> <em class="jxr_javadoccomment">   *  (incorrect) NDC. See also writeObject method. */</em>
<a name="109" href="#109">109</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> ndcLookupRequired = <strong class="jxr_keyword">true</strong>;
<a name="110" href="#110">110</a> 
<a name="111" href="#111">111</a> 
<a name="112" href="#112">112</a>   <em class="jxr_javadoccomment">/**</em><em class="jxr_javadoccomment"> Have we tried to do an MDC lookup? If we did, there is no need</em>
<a name="113" href="#113">113</a> <em class="jxr_javadoccomment">   *  to do it again.  Note that its value is always false when</em>
<a name="114" href="#114">114</a> <em class="jxr_javadoccomment">   *  serialized. See also the getMDC and getMDCCopy methods.  */</em>
<a name="115" href="#115">115</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> mdcCopyLookupRequired = <strong class="jxr_keyword">true</strong>;
<a name="116" href="#116">116</a> 
<a name="117" href="#117">117</a>   <em class="jxr_javadoccomment">/**</em><em class="jxr_javadoccomment"> The application supplied message of logging event. */</em>
<a name="118" href="#118">118</a>   <strong class="jxr_keyword">transient</strong> <strong class="jxr_keyword">private</strong> Object message;
<a name="119" href="#119">119</a> 
<a name="120" href="#120">120</a>   <em class="jxr_javadoccomment">/**</em><em class="jxr_javadoccomment"> The application supplied message rendered through the log4j</em>
<a name="121" href="#121">121</a> <em class="jxr_javadoccomment">      objet rendering mechanism.*/</em>
<a name="122" href="#122">122</a>   <strong class="jxr_keyword">private</strong> String renderedMessage;
<a name="123" href="#123">123</a> 
<a name="124" href="#124">124</a>   <em class="jxr_javadoccomment">/**</em><em class="jxr_javadoccomment"> The name of thread in which this logging event was generated. */</em>
<a name="125" href="#125">125</a>   <strong class="jxr_keyword">private</strong> String threadName;
<a name="126" href="#126">126</a> 
<a name="127" href="#127">127</a> 
<a name="128" href="#128">128</a>   <em class="jxr_javadoccomment">/**</em><em class="jxr_javadoccomment"> This</em>
<a name="129" href="#129">129</a> <em class="jxr_javadoccomment">      variable contains information about this event's throwable</em>
<a name="130" href="#130">130</a> <em class="jxr_javadoccomment">  */</em>
<a name="131" href="#131">131</a>   <strong class="jxr_keyword">private</strong> <a href="../../../../org/apache/log4j/spi/ThrowableInformation.html">ThrowableInformation</a> throwableInfo;
<a name="132" href="#132">132</a> 
<a name="133" href="#133">133</a>   <em class="jxr_javadoccomment">/**</em><em class="jxr_javadoccomment"> The number of milliseconds elapsed from 1/1/1970 until logging event</em>
<a name="134" href="#134">134</a> <em class="jxr_javadoccomment">      was created. */</em>
<a name="135" href="#135">135</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">long</strong> timeStamp;
<a name="136" href="#136">136</a>   <em class="jxr_javadoccomment">/**</em><em class="jxr_javadoccomment"> Location information for the caller. */</em>
<a name="137" href="#137">137</a>   <strong class="jxr_keyword">private</strong> <a href="../../../../org/apache/log4j/spi/LocationInfo.html">LocationInfo</a> locationInfo;
<a name="138" href="#138">138</a> 
<a name="139" href="#139">139</a>   <em class="jxr_comment">// Serialization</em>
<a name="140" href="#140">140</a>   <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">long</strong> serialVersionUID = -868428216207166145L;
<a name="141" href="#141">141</a> 
<a name="142" href="#142">142</a>   <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Integer[] PARAM_ARRAY = <strong class="jxr_keyword">new</strong> Integer[1];
<a name="143" href="#143">143</a>   <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String TO_LEVEL = <span class="jxr_string">"toLevel"</span>;
<a name="144" href="#144">144</a>   <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Class[] TO_LEVEL_PARAMS = <strong class="jxr_keyword">new</strong> Class[] {<strong class="jxr_keyword">int</strong>.<strong class="jxr_keyword">class</strong>};
<a name="145" href="#145">145</a>   <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Hashtable methodCache = <strong class="jxr_keyword">new</strong> Hashtable(3); <em class="jxr_comment">// use a tiny table</em>
<a name="146" href="#146">146</a> 
<a name="147" href="#147">147</a>   <em class="jxr_javadoccomment">/**</em>
<a name="148" href="#148">148</a> <em class="jxr_javadoccomment">     Instantiate a LoggingEvent from the supplied parameters.</em>
<a name="149" href="#149">149</a> 
<a name="150" href="#150">150</a> <em class="jxr_javadoccomment">     &lt;p&gt;Except {@link #timeStamp} all the other fields of</em>
<a name="151" href="#151">151</a> <em class="jxr_javadoccomment">     &lt;code&gt;LoggingEvent&lt;/code&gt; are filled when actually needed.</em>
<a name="152" href="#152">152</a> <em class="jxr_javadoccomment">     &lt;p&gt;</em>
<a name="153" href="#153">153</a> <em class="jxr_javadoccomment">     @param logger The logger generating this event.</em>
<a name="154" href="#154">154</a> <em class="jxr_javadoccomment">     @param level The level of this event.</em>
<a name="155" href="#155">155</a> <em class="jxr_javadoccomment">     @param message  The message of this event.</em>
<a name="156" href="#156">156</a> <em class="jxr_javadoccomment">     @param throwable The throwable of this event.  */</em>
<a name="157" href="#157">157</a>   <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/log4j/spi/LoggingEvent.html">LoggingEvent</a>(String fqnOfCategoryClass, <a href="../../../../org/apache/log4j/Category.html">Category</a> logger,
<a name="158" href="#158">158</a> 		      Priority level, Object message, Throwable throwable) {
<a name="159" href="#159">159</a>     <strong class="jxr_keyword">this</strong>.fqnOfCategoryClass = fqnOfCategoryClass;
<a name="160" href="#160">160</a>     <strong class="jxr_keyword">this</strong>.logger = logger;
<a name="161" href="#161">161</a>     <strong class="jxr_keyword">this</strong>.categoryName = logger.getName();
<a name="162" href="#162">162</a>     <strong class="jxr_keyword">this</strong>.level = level;
<a name="163" href="#163">163</a>     <strong class="jxr_keyword">this</strong>.message = message;
<a name="164" href="#164">164</a>     <strong class="jxr_keyword">if</strong>(throwable != <strong class="jxr_keyword">null</strong>) {
<a name="165" href="#165">165</a>       <strong class="jxr_keyword">this</strong>.throwableInfo = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/spi/ThrowableInformation.html">ThrowableInformation</a>(throwable, logger);
<a name="166" href="#166">166</a>     }
<a name="167" href="#167">167</a>     timeStamp = System.currentTimeMillis();
<a name="168" href="#168">168</a>   }
<a name="169" href="#169">169</a> 
<a name="170" href="#170">170</a>   <em class="jxr_javadoccomment">/**</em>
<a name="171" href="#171">171</a> <em class="jxr_javadoccomment">     Instantiate a LoggingEvent from the supplied parameters.</em>
<a name="172" href="#172">172</a> 
<a name="173" href="#173">173</a> <em class="jxr_javadoccomment">     &lt;p&gt;Except {@link #timeStamp} all the other fields of</em>
<a name="174" href="#174">174</a> <em class="jxr_javadoccomment">     &lt;code&gt;LoggingEvent&lt;/code&gt; are filled when actually needed.</em>
<a name="175" href="#175">175</a> <em class="jxr_javadoccomment">     &lt;p&gt;</em>
<a name="176" href="#176">176</a> <em class="jxr_javadoccomment">     @param logger The logger generating this event.</em>
<a name="177" href="#177">177</a> <em class="jxr_javadoccomment">     @param timeStamp the timestamp of this logging event</em>
<a name="178" href="#178">178</a> <em class="jxr_javadoccomment">     @param level The level of this event.</em>
<a name="179" href="#179">179</a> <em class="jxr_javadoccomment">     @param message  The message of this event.</em>
<a name="180" href="#180">180</a> <em class="jxr_javadoccomment">     @param throwable The throwable of this event.  */</em>
<a name="181" href="#181">181</a>   <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/log4j/spi/LoggingEvent.html">LoggingEvent</a>(String fqnOfCategoryClass, <a href="../../../../org/apache/log4j/Category.html">Category</a> logger,
<a name="182" href="#182">182</a> 		      <strong class="jxr_keyword">long</strong> timeStamp, Priority level, Object message,
<a name="183" href="#183">183</a> 		      Throwable throwable) {
<a name="184" href="#184">184</a>     <strong class="jxr_keyword">this</strong>.fqnOfCategoryClass = fqnOfCategoryClass;
<a name="185" href="#185">185</a>     <strong class="jxr_keyword">this</strong>.logger = logger;
<a name="186" href="#186">186</a>     <strong class="jxr_keyword">this</strong>.categoryName = logger.getName();
<a name="187" href="#187">187</a>     <strong class="jxr_keyword">this</strong>.level = level;
<a name="188" href="#188">188</a>     <strong class="jxr_keyword">this</strong>.message = message;
<a name="189" href="#189">189</a>     <strong class="jxr_keyword">if</strong>(throwable != <strong class="jxr_keyword">null</strong>) {
<a name="190" href="#190">190</a>       <strong class="jxr_keyword">this</strong>.throwableInfo = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/spi/ThrowableInformation.html">ThrowableInformation</a>(throwable, logger);
<a name="191" href="#191">191</a>     }
<a name="192" href="#192">192</a> 
<a name="193" href="#193">193</a>     <strong class="jxr_keyword">this</strong>.timeStamp = timeStamp;
<a name="194" href="#194">194</a>   }
<a name="195" href="#195">195</a> 
<a name="196" href="#196">196</a>     <em class="jxr_javadoccomment">/**</em>
<a name="197" href="#197">197</a> <em class="jxr_javadoccomment">       Create new instance.</em>
<a name="198" href="#198">198</a> <em class="jxr_javadoccomment">       @since 1.2.15</em>
<a name="199" href="#199">199</a> <em class="jxr_javadoccomment">       @param fqnOfCategoryClass Fully qualified class name</em>
<a name="200" href="#200">200</a> <em class="jxr_javadoccomment">                 of Logger implementation.</em>
<a name="201" href="#201">201</a> <em class="jxr_javadoccomment">       @param logger The logger generating this event.</em>
<a name="202" href="#202">202</a> <em class="jxr_javadoccomment">       @param timeStamp the timestamp of this logging event</em>
<a name="203" href="#203">203</a> <em class="jxr_javadoccomment">       @param level The level of this event.</em>
<a name="204" href="#204">204</a> <em class="jxr_javadoccomment">       @param message  The message of this event.</em>
<a name="205" href="#205">205</a> <em class="jxr_javadoccomment">       @param threadName thread name</em>
<a name="206" href="#206">206</a> <em class="jxr_javadoccomment">       @param throwable The throwable of this event.</em>
<a name="207" href="#207">207</a> <em class="jxr_javadoccomment">       @param ndc Nested diagnostic context</em>
<a name="208" href="#208">208</a> <em class="jxr_javadoccomment">       @param info Location info</em>
<a name="209" href="#209">209</a> <em class="jxr_javadoccomment">       @param properties MDC properties</em>
<a name="210" href="#210">210</a> <em class="jxr_javadoccomment">     */</em>
<a name="211" href="#211">211</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/log4j/spi/LoggingEvent.html">LoggingEvent</a>(<strong class="jxr_keyword">final</strong> String fqnOfCategoryClass,
<a name="212" href="#212">212</a>                         <strong class="jxr_keyword">final</strong> <a href="../../../../org/apache/log4j/Category.html">Category</a> logger,
<a name="213" href="#213">213</a>                         <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">long</strong> timeStamp,
<a name="214" href="#214">214</a>                         <strong class="jxr_keyword">final</strong> <a href="../../../../org/apache/log4j/Level.html">Level</a> level,
<a name="215" href="#215">215</a>                         <strong class="jxr_keyword">final</strong> Object message,
<a name="216" href="#216">216</a>                         <strong class="jxr_keyword">final</strong> String threadName,
<a name="217" href="#217">217</a>                         <strong class="jxr_keyword">final</strong> <a href="../../../../org/apache/log4j/spi/ThrowableInformation.html">ThrowableInformation</a> throwable,
<a name="218" href="#218">218</a>                         <strong class="jxr_keyword">final</strong> String ndc,
<a name="219" href="#219">219</a>                         <strong class="jxr_keyword">final</strong> <a href="../../../../org/apache/log4j/spi/LocationInfo.html">LocationInfo</a> info,
<a name="220" href="#220">220</a>                         <strong class="jxr_keyword">final</strong> java.util.Map properties) {
<a name="221" href="#221">221</a>       <strong class="jxr_keyword">super</strong>();
<a name="222" href="#222">222</a>       <strong class="jxr_keyword">this</strong>.fqnOfCategoryClass = fqnOfCategoryClass;
<a name="223" href="#223">223</a>       <strong class="jxr_keyword">this</strong>.logger = logger;
<a name="224" href="#224">224</a>       <strong class="jxr_keyword">if</strong> (logger != <strong class="jxr_keyword">null</strong>) {
<a name="225" href="#225">225</a>           categoryName = logger.getName();
<a name="226" href="#226">226</a>       } <strong class="jxr_keyword">else</strong> {
<a name="227" href="#227">227</a>           categoryName = <strong class="jxr_keyword">null</strong>;
<a name="228" href="#228">228</a>       }
<a name="229" href="#229">229</a>       <strong class="jxr_keyword">this</strong>.level = level;
<a name="230" href="#230">230</a>       <strong class="jxr_keyword">this</strong>.message = message;
<a name="231" href="#231">231</a>       <strong class="jxr_keyword">if</strong>(throwable != <strong class="jxr_keyword">null</strong>) {
<a name="232" href="#232">232</a>         <strong class="jxr_keyword">this</strong>.throwableInfo = throwable;
<a name="233" href="#233">233</a>       }
<a name="234" href="#234">234</a> 
<a name="235" href="#235">235</a>       <strong class="jxr_keyword">this</strong>.timeStamp = timeStamp;
<a name="236" href="#236">236</a>       <strong class="jxr_keyword">this</strong>.threadName = threadName;
<a name="237" href="#237">237</a>       ndcLookupRequired = false;
<a name="238" href="#238">238</a>       <strong class="jxr_keyword">this</strong>.ndc = ndc;
<a name="239" href="#239">239</a>       <strong class="jxr_keyword">this</strong>.locationInfo = info;
<a name="240" href="#240">240</a>       mdcCopyLookupRequired = false;
<a name="241" href="#241">241</a>       <strong class="jxr_keyword">if</strong> (properties != <strong class="jxr_keyword">null</strong>) {
<a name="242" href="#242">242</a>         mdcCopy = <strong class="jxr_keyword">new</strong> java.util.Hashtable(properties);
<a name="243" href="#243">243</a>       }
<a name="244" href="#244">244</a>     }
<a name="245" href="#245">245</a> 
<a name="246" href="#246">246</a> 
<a name="247" href="#247">247</a>   <em class="jxr_javadoccomment">/**</em>
<a name="248" href="#248">248</a> <em class="jxr_javadoccomment">     Set the location information for this logging event. The collected</em>
<a name="249" href="#249">249</a> <em class="jxr_javadoccomment">     information is cached for future use.</em>
<a name="250" href="#250">250</a> <em class="jxr_javadoccomment">   */</em>
<a name="251" href="#251">251</a>   <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/log4j/spi/LocationInfo.html">LocationInfo</a> getLocationInformation() {
<a name="252" href="#252">252</a>     <strong class="jxr_keyword">if</strong>(locationInfo == <strong class="jxr_keyword">null</strong>) {
<a name="253" href="#253">253</a>       locationInfo = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/spi/LocationInfo.html">LocationInfo</a>(<strong class="jxr_keyword">new</strong> Throwable(), fqnOfCategoryClass);
<a name="254" href="#254">254</a>     }
<a name="255" href="#255">255</a>     <strong class="jxr_keyword">return</strong> locationInfo;
<a name="256" href="#256">256</a>   }
<a name="257" href="#257">257</a> 
<a name="258" href="#258">258</a>   <em class="jxr_javadoccomment">/**</em>
<a name="259" href="#259">259</a> <em class="jxr_javadoccomment">   * Return the level of this event. Use this form instead of directly</em>
<a name="260" href="#260">260</a> <em class="jxr_javadoccomment">   * accessing the &lt;code&gt;level&lt;/code&gt; field.  */</em>
<a name="261" href="#261">261</a>   <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/log4j/Level.html">Level</a> getLevel() {
<a name="262" href="#262">262</a>     <strong class="jxr_keyword">return</strong> (Level) level;
<a name="263" href="#263">263</a>   }
<a name="264" href="#264">264</a> 
<a name="265" href="#265">265</a>   <em class="jxr_javadoccomment">/**</em>
<a name="266" href="#266">266</a> <em class="jxr_javadoccomment">   * Return the name of the logger. Use this form instead of directly</em>
<a name="267" href="#267">267</a> <em class="jxr_javadoccomment">   * accessing the &lt;code&gt;categoryName&lt;/code&gt; field.  </em>
<a name="268" href="#268">268</a> <em class="jxr_javadoccomment">   */</em>
<a name="269" href="#269">269</a>   <strong class="jxr_keyword">public</strong> String getLoggerName() {
<a name="270" href="#270">270</a>     <strong class="jxr_keyword">return</strong> categoryName;
<a name="271" href="#271">271</a>   }
<a name="272" href="#272">272</a> 
<a name="273" href="#273">273</a>     <em class="jxr_javadoccomment">/**</em>
<a name="274" href="#274">274</a> <em class="jxr_javadoccomment">     * Gets the logger of the event.</em>
<a name="275" href="#275">275</a> <em class="jxr_javadoccomment">     * Use should be restricted to cloning events.</em>
<a name="276" href="#276">276</a> <em class="jxr_javadoccomment">     * @since 1.2.15</em>
<a name="277" href="#277">277</a> <em class="jxr_javadoccomment">     */</em>
<a name="278" href="#278">278</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/log4j/Category.html">Category</a> getLogger() {
<a name="279" href="#279">279</a>       <strong class="jxr_keyword">return</strong> logger;
<a name="280" href="#280">280</a>     }
<a name="281" href="#281">281</a> 
<a name="282" href="#282">282</a>   <em class="jxr_javadoccomment">/**</em>
<a name="283" href="#283">283</a> <em class="jxr_javadoccomment">     Return the message for this logging event.</em>
<a name="284" href="#284">284</a> 
<a name="285" href="#285">285</a> <em class="jxr_javadoccomment">     &lt;p&gt;Before serialization, the returned object is the message</em>
<a name="286" href="#286">286</a> <em class="jxr_javadoccomment">     passed by the user to generate the logging event. After</em>
<a name="287" href="#287">287</a> <em class="jxr_javadoccomment">     serialization, the returned value equals the String form of the</em>
<a name="288" href="#288">288</a> <em class="jxr_javadoccomment">     message possibly after object rendering.</em>
<a name="289" href="#289">289</a> 
<a name="290" href="#290">290</a> <em class="jxr_javadoccomment">     @since 1.1 */</em>
<a name="291" href="#291">291</a>   <strong class="jxr_keyword">public</strong>
<a name="292" href="#292">292</a>   Object getMessage() {
<a name="293" href="#293">293</a>     <strong class="jxr_keyword">if</strong>(message != <strong class="jxr_keyword">null</strong>) {
<a name="294" href="#294">294</a>       <strong class="jxr_keyword">return</strong> message;
<a name="295" href="#295">295</a>     } <strong class="jxr_keyword">else</strong> {
<a name="296" href="#296">296</a>       <strong class="jxr_keyword">return</strong> getRenderedMessage();
<a name="297" href="#297">297</a>     }
<a name="298" href="#298">298</a>   }
<a name="299" href="#299">299</a> 
<a name="300" href="#300">300</a>   <em class="jxr_javadoccomment">/**</em>
<a name="301" href="#301">301</a> <em class="jxr_javadoccomment">   * This method returns the NDC for this event. It will return the</em>
<a name="302" href="#302">302</a> <em class="jxr_javadoccomment">   * correct content even if the event was generated in a different</em>
<a name="303" href="#303">303</a> <em class="jxr_javadoccomment">   * thread or even on a different machine. The {@link NDC#get} method</em>
<a name="304" href="#304">304</a> <em class="jxr_javadoccomment">   * should &lt;em&gt;never&lt;/em&gt; be called directly.  */</em>
<a name="305" href="#305">305</a>   <strong class="jxr_keyword">public</strong>
<a name="306" href="#306">306</a>   String getNDC() {
<a name="307" href="#307">307</a>     <strong class="jxr_keyword">if</strong>(ndcLookupRequired) {
<a name="308" href="#308">308</a>       ndcLookupRequired = false;
<a name="309" href="#309">309</a>       ndc = NDC.get();
<a name="310" href="#310">310</a>     }
<a name="311" href="#311">311</a>     <strong class="jxr_keyword">return</strong> ndc;
<a name="312" href="#312">312</a>   }
<a name="313" href="#313">313</a> 
<a name="314" href="#314">314</a> 
<a name="315" href="#315">315</a>   <em class="jxr_javadoccomment">/**</em>
<a name="316" href="#316">316</a> <em class="jxr_javadoccomment">      Returns the the context corresponding to the &lt;code&gt;key&lt;/code&gt;</em>
<a name="317" href="#317">317</a> <em class="jxr_javadoccomment">      parameter. If there is a local MDC copy, possibly because we are</em>
<a name="318" href="#318">318</a> <em class="jxr_javadoccomment">      in a logging server or running inside AsyncAppender, then we</em>
<a name="319" href="#319">319</a> <em class="jxr_javadoccomment">      search for the key in MDC copy, if a value is found it is</em>
<a name="320" href="#320">320</a> <em class="jxr_javadoccomment">      returned. Otherwise, if the search in MDC copy returns a null</em>
<a name="321" href="#321">321</a> <em class="jxr_javadoccomment">      result, then the current thread's &lt;code&gt;MDC&lt;/code&gt; is used.</em>
<a name="322" href="#322">322</a> <em class="jxr_javadoccomment">      </em>
<a name="323" href="#323">323</a> <em class="jxr_javadoccomment">      &lt;p&gt;Note that &lt;em&gt;both&lt;/em&gt; the local MDC copy and the current</em>
<a name="324" href="#324">324</a> <em class="jxr_javadoccomment">      thread's MDC are searched.</em>
<a name="325" href="#325">325</a> 
<a name="326" href="#326">326</a> <em class="jxr_javadoccomment">  */</em>
<a name="327" href="#327">327</a>   <strong class="jxr_keyword">public</strong>
<a name="328" href="#328">328</a>   Object getMDC(String key) {
<a name="329" href="#329">329</a>     Object r;
<a name="330" href="#330">330</a>     <em class="jxr_comment">// Note the mdcCopy is used if it exists. Otherwise we use the MDC</em>
<a name="331" href="#331">331</a>     <em class="jxr_comment">// that is associated with the thread.</em>
<a name="332" href="#332">332</a>     <strong class="jxr_keyword">if</strong>(mdcCopy != <strong class="jxr_keyword">null</strong>) {
<a name="333" href="#333">333</a>       r = mdcCopy.get(key);
<a name="334" href="#334">334</a>       <strong class="jxr_keyword">if</strong>(r != <strong class="jxr_keyword">null</strong>) {
<a name="335" href="#335">335</a>         <strong class="jxr_keyword">return</strong> r;
<a name="336" href="#336">336</a>       }
<a name="337" href="#337">337</a>     }
<a name="338" href="#338">338</a>     <strong class="jxr_keyword">return</strong> MDC.get(key);
<a name="339" href="#339">339</a>   }
<a name="340" href="#340">340</a> 
<a name="341" href="#341">341</a>   <em class="jxr_javadoccomment">/**</em>
<a name="342" href="#342">342</a> <em class="jxr_javadoccomment">     Obtain a copy of this thread's MDC prior to serialization or</em>
<a name="343" href="#343">343</a> <em class="jxr_javadoccomment">     asynchronous logging.  </em>
<a name="344" href="#344">344</a> <em class="jxr_javadoccomment">  */</em>
<a name="345" href="#345">345</a>   <strong class="jxr_keyword">public</strong>
<a name="346" href="#346">346</a>   <strong class="jxr_keyword">void</strong> getMDCCopy() {
<a name="347" href="#347">347</a>     <strong class="jxr_keyword">if</strong>(mdcCopyLookupRequired) {
<a name="348" href="#348">348</a>       mdcCopyLookupRequired = false;
<a name="349" href="#349">349</a>       <em class="jxr_comment">// the clone call is required for asynchronous logging.</em>
<a name="350" href="#350">350</a>       <em class="jxr_comment">// See also bug #5932.</em>
<a name="351" href="#351">351</a>       Hashtable t = (Hashtable) MDC.getContext();
<a name="352" href="#352">352</a>       <strong class="jxr_keyword">if</strong>(t != <strong class="jxr_keyword">null</strong>) {
<a name="353" href="#353">353</a> 	mdcCopy = (Hashtable) t.clone();
<a name="354" href="#354">354</a>       }
<a name="355" href="#355">355</a>     }
<a name="356" href="#356">356</a>   }
<a name="357" href="#357">357</a> 
<a name="358" href="#358">358</a>   <strong class="jxr_keyword">public</strong>
<a name="359" href="#359">359</a>   String getRenderedMessage() {
<a name="360" href="#360">360</a>      <strong class="jxr_keyword">if</strong>(renderedMessage == <strong class="jxr_keyword">null</strong> &amp;&amp; message != <strong class="jxr_keyword">null</strong>) {
<a name="361" href="#361">361</a>        <strong class="jxr_keyword">if</strong>(message instanceof String)
<a name="362" href="#362">362</a> 	 renderedMessage = (String) message;
<a name="363" href="#363">363</a>        <strong class="jxr_keyword">else</strong> {
<a name="364" href="#364">364</a> 	 <a href="../../../../org/apache/log4j/spi/LoggerRepository.html">LoggerRepository</a> repository = logger.getLoggerRepository();
<a name="365" href="#365">365</a> 
<a name="366" href="#366">366</a> 	 <strong class="jxr_keyword">if</strong>(repository instanceof <a href="../../../../org/apache/log4j/spi/RendererSupport.html">RendererSupport</a>) {
<a name="367" href="#367">367</a> 	   RendererSupport rs = (RendererSupport) repository;
<a name="368" href="#368">368</a> 	   renderedMessage= rs.getRendererMap().findAndRender(message);
<a name="369" href="#369">369</a> 	 } <strong class="jxr_keyword">else</strong> {
<a name="370" href="#370">370</a> 	   renderedMessage = message.toString();
<a name="371" href="#371">371</a> 	 }
<a name="372" href="#372">372</a>        }
<a name="373" href="#373">373</a>      }
<a name="374" href="#374">374</a>      <strong class="jxr_keyword">return</strong> renderedMessage;
<a name="375" href="#375">375</a>   }
<a name="376" href="#376">376</a> 
<a name="377" href="#377">377</a>   <em class="jxr_javadoccomment">/**</em>
<a name="378" href="#378">378</a> <em class="jxr_javadoccomment">     Returns the time when the application started, in milliseconds</em>
<a name="379" href="#379">379</a> <em class="jxr_javadoccomment">     elapsed since 01.01.1970.  */</em>
<a name="380" href="#380">380</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">long</strong> getStartTime() {
<a name="381" href="#381">381</a>     <strong class="jxr_keyword">return</strong> startTime;
<a name="382" href="#382">382</a>   }
<a name="383" href="#383">383</a> 
<a name="384" href="#384">384</a>   <strong class="jxr_keyword">public</strong>
<a name="385" href="#385">385</a>   String getThreadName() {
<a name="386" href="#386">386</a>     <strong class="jxr_keyword">if</strong>(threadName == <strong class="jxr_keyword">null</strong>)
<a name="387" href="#387">387</a>       threadName = (Thread.currentThread()).getName();
<a name="388" href="#388">388</a>     <strong class="jxr_keyword">return</strong> threadName;
<a name="389" href="#389">389</a>   }
<a name="390" href="#390">390</a> 
<a name="391" href="#391">391</a>   <em class="jxr_javadoccomment">/**</em>
<a name="392" href="#392">392</a> <em class="jxr_javadoccomment">     Returns the throwable information contained within this</em>
<a name="393" href="#393">393</a> <em class="jxr_javadoccomment">     event. May be &lt;code&gt;null&lt;/code&gt; if there is no such information.</em>
<a name="394" href="#394">394</a> 
<a name="395" href="#395">395</a> <em class="jxr_javadoccomment">     &lt;p&gt;Note that the {@link Throwable} object contained within a</em>
<a name="396" href="#396">396</a> <em class="jxr_javadoccomment">     {@link ThrowableInformation} does not survive serialization.</em>
<a name="397" href="#397">397</a> 
<a name="398" href="#398">398</a> <em class="jxr_javadoccomment">     @since 1.1 */</em>
<a name="399" href="#399">399</a>   <strong class="jxr_keyword">public</strong>
<a name="400" href="#400">400</a>   <a href="../../../../org/apache/log4j/spi/ThrowableInformation.html">ThrowableInformation</a> getThrowableInformation() {
<a name="401" href="#401">401</a>     <strong class="jxr_keyword">return</strong> throwableInfo;
<a name="402" href="#402">402</a>   }
<a name="403" href="#403">403</a> 
<a name="404" href="#404">404</a>   <em class="jxr_javadoccomment">/**</em>
<a name="405" href="#405">405</a> <em class="jxr_javadoccomment">     Return this event's throwable's string[] representaion.</em>
<a name="406" href="#406">406</a> <em class="jxr_javadoccomment">  */</em>
<a name="407" href="#407">407</a>   <strong class="jxr_keyword">public</strong>
<a name="408" href="#408">408</a>   String[] getThrowableStrRep() {
<a name="409" href="#409">409</a> 
<a name="410" href="#410">410</a>     <strong class="jxr_keyword">if</strong>(throwableInfo ==  <strong class="jxr_keyword">null</strong>)
<a name="411" href="#411">411</a>       <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a name="412" href="#412">412</a>     <strong class="jxr_keyword">else</strong>
<a name="413" href="#413">413</a>       <strong class="jxr_keyword">return</strong> throwableInfo.getThrowableStrRep();
<a name="414" href="#414">414</a>   }
<a name="415" href="#415">415</a> 
<a name="416" href="#416">416</a> 
<a name="417" href="#417">417</a>   <strong class="jxr_keyword">private</strong>
<a name="418" href="#418">418</a>   <strong class="jxr_keyword">void</strong> readLevel(ObjectInputStream ois)
<a name="419" href="#419">419</a>                       <strong class="jxr_keyword">throws</strong> java.io.IOException, ClassNotFoundException {
<a name="420" href="#420">420</a> 
<a name="421" href="#421">421</a>     <strong class="jxr_keyword">int</strong> p = ois.readInt();
<a name="422" href="#422">422</a>     <strong class="jxr_keyword">try</strong> {
<a name="423" href="#423">423</a>       String className = (String) ois.readObject();
<a name="424" href="#424">424</a>       <strong class="jxr_keyword">if</strong>(className == <strong class="jxr_keyword">null</strong>) {
<a name="425" href="#425">425</a> 	level = Level.toLevel(p);
<a name="426" href="#426">426</a>       } <strong class="jxr_keyword">else</strong> {
<a name="427" href="#427">427</a> 	Method m = (Method) methodCache.get(className);
<a name="428" href="#428">428</a> 	<strong class="jxr_keyword">if</strong>(m == <strong class="jxr_keyword">null</strong>) {
<a name="429" href="#429">429</a> 	  Class clazz = Loader.loadClass(className);
<a name="430" href="#430">430</a> 	  <em class="jxr_comment">// Note that we use Class.getDeclaredMethod instead of</em>
<a name="431" href="#431">431</a> 	  <em class="jxr_comment">// Class.getMethod. This assumes that the Level subclass</em>
<a name="432" href="#432">432</a> 	  <em class="jxr_comment">// implements the toLevel(int) method which is a</em>
<a name="433" href="#433">433</a> 	  <em class="jxr_comment">// requirement. Actually, it does not make sense for Level</em>
<a name="434" href="#434">434</a> 	  <em class="jxr_comment">// subclasses NOT to implement this method. Also note that</em>
<a name="435" href="#435">435</a> 	  <em class="jxr_comment">// only Level can be subclassed and not Priority.</em>
<a name="436" href="#436">436</a> 	  m = clazz.getDeclaredMethod(TO_LEVEL, TO_LEVEL_PARAMS);
<a name="437" href="#437">437</a> 	  methodCache.put(className, m);
<a name="438" href="#438">438</a> 	}
<a name="439" href="#439">439</a> 	level = (Level) m.invoke(<strong class="jxr_keyword">null</strong>,  <strong class="jxr_keyword">new</strong> Integer[] { <strong class="jxr_keyword">new</strong> Integer(p) } );
<a name="440" href="#440">440</a>       }
<a name="441" href="#441">441</a>     } <strong class="jxr_keyword">catch</strong>(InvocationTargetException e) {
<a name="442" href="#442">442</a>         <strong class="jxr_keyword">if</strong> (e.getTargetException() instanceof InterruptedException
<a name="443" href="#443">443</a>                 || e.getTargetException() instanceof InterruptedIOException) {
<a name="444" href="#444">444</a>             Thread.currentThread().interrupt();
<a name="445" href="#445">445</a>         }
<a name="446" href="#446">446</a>     LogLog.warn(<span class="jxr_string">"Level deserialization failed, reverting to default."</span>, e);
<a name="447" href="#447">447</a> 	level = Level.toLevel(p);
<a name="448" href="#448">448</a>     } <strong class="jxr_keyword">catch</strong>(NoSuchMethodException e) {
<a name="449" href="#449">449</a> 	LogLog.warn(<span class="jxr_string">"Level deserialization failed, reverting to default."</span>, e);
<a name="450" href="#450">450</a> 	level = Level.toLevel(p);
<a name="451" href="#451">451</a>     } <strong class="jxr_keyword">catch</strong>(IllegalAccessException e) {
<a name="452" href="#452">452</a> 	LogLog.warn(<span class="jxr_string">"Level deserialization failed, reverting to default."</span>, e);
<a name="453" href="#453">453</a> 	level = Level.toLevel(p);
<a name="454" href="#454">454</a>     } <strong class="jxr_keyword">catch</strong>(RuntimeException e) {
<a name="455" href="#455">455</a> 	LogLog.warn(<span class="jxr_string">"Level deserialization failed, reverting to default."</span>, e);
<a name="456" href="#456">456</a> 	level = Level.toLevel(p);
<a name="457" href="#457">457</a>     }
<a name="458" href="#458">458</a>   }
<a name="459" href="#459">459</a> 
<a name="460" href="#460">460</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> readObject(ObjectInputStream ois)
<a name="461" href="#461">461</a>                         <strong class="jxr_keyword">throws</strong> java.io.IOException, ClassNotFoundException {
<a name="462" href="#462">462</a>     ois.defaultReadObject();
<a name="463" href="#463">463</a>     readLevel(ois);
<a name="464" href="#464">464</a> 
<a name="465" href="#465">465</a>     <em class="jxr_comment">// Make sure that no location info is available to Layouts</em>
<a name="466" href="#466">466</a>     <strong class="jxr_keyword">if</strong>(locationInfo == <strong class="jxr_keyword">null</strong>)
<a name="467" href="#467">467</a>       locationInfo = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/spi/LocationInfo.html">LocationInfo</a>(<strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>);
<a name="468" href="#468">468</a>   }
<a name="469" href="#469">469</a> 
<a name="470" href="#470">470</a>   <strong class="jxr_keyword">private</strong>
<a name="471" href="#471">471</a>   <strong class="jxr_keyword">void</strong> writeObject(ObjectOutputStream oos) <strong class="jxr_keyword">throws</strong> java.io.IOException {
<a name="472" href="#472">472</a>     <em class="jxr_comment">// Aside from returning the current thread name the wgetThreadName</em>
<a name="473" href="#473">473</a>     <em class="jxr_comment">// method sets the threadName variable.</em>
<a name="474" href="#474">474</a>     <strong class="jxr_keyword">this</strong>.getThreadName();
<a name="475" href="#475">475</a> 
<a name="476" href="#476">476</a>     <em class="jxr_comment">// This sets the renders the message in case it wasn't up to now.</em>
<a name="477" href="#477">477</a>     <strong class="jxr_keyword">this</strong>.getRenderedMessage();
<a name="478" href="#478">478</a> 
<a name="479" href="#479">479</a>     <em class="jxr_comment">// This call has a side effect of setting this.ndc and</em>
<a name="480" href="#480">480</a>     <em class="jxr_comment">// setting ndcLookupRequired to false if not already false.</em>
<a name="481" href="#481">481</a>     <strong class="jxr_keyword">this</strong>.getNDC();
<a name="482" href="#482">482</a> 
<a name="483" href="#483">483</a>     <em class="jxr_comment">// This call has a side effect of setting this.mdcCopy and</em>
<a name="484" href="#484">484</a>     <em class="jxr_comment">// setting mdcLookupRequired to false if not already false.</em>
<a name="485" href="#485">485</a>     <strong class="jxr_keyword">this</strong>.getMDCCopy();
<a name="486" href="#486">486</a> 
<a name="487" href="#487">487</a>     <em class="jxr_comment">// This sets the throwable sting representation of the event throwable.</em>
<a name="488" href="#488">488</a>     <strong class="jxr_keyword">this</strong>.getThrowableStrRep();
<a name="489" href="#489">489</a> 
<a name="490" href="#490">490</a>     oos.defaultWriteObject();
<a name="491" href="#491">491</a> 
<a name="492" href="#492">492</a>     <em class="jxr_comment">// serialize this event's level</em>
<a name="493" href="#493">493</a>     writeLevel(oos);
<a name="494" href="#494">494</a>   }
<a name="495" href="#495">495</a> 
<a name="496" href="#496">496</a>   <strong class="jxr_keyword">private</strong>
<a name="497" href="#497">497</a>   <strong class="jxr_keyword">void</strong> writeLevel(ObjectOutputStream oos) <strong class="jxr_keyword">throws</strong> java.io.IOException {
<a name="498" href="#498">498</a> 
<a name="499" href="#499">499</a>     oos.writeInt(level.toInt());
<a name="500" href="#500">500</a> 
<a name="501" href="#501">501</a>     Class clazz = level.getClass();
<a name="502" href="#502">502</a>     <strong class="jxr_keyword">if</strong>(clazz == Level.<strong class="jxr_keyword">class</strong>) {
<a name="503" href="#503">503</a>       oos.writeObject(<strong class="jxr_keyword">null</strong>);
<a name="504" href="#504">504</a>     } <strong class="jxr_keyword">else</strong> {
<a name="505" href="#505">505</a>       <em class="jxr_comment">// writing directly the Class object would be nicer, except that</em>
<a name="506" href="#506">506</a>       <em class="jxr_comment">// serialized a Class object can not be read back by JDK</em>
<a name="507" href="#507">507</a>       <em class="jxr_comment">// 1.1.x. We have to resort to this hack instead.</em>
<a name="508" href="#508">508</a>       oos.writeObject(clazz.getName());
<a name="509" href="#509">509</a>     }
<a name="510" href="#510">510</a>   }
<a name="511" href="#511">511</a> 
<a name="512" href="#512">512</a>     <em class="jxr_javadoccomment">/**</em>
<a name="513" href="#513">513</a> <em class="jxr_javadoccomment">     * Set value for MDC property.</em>
<a name="514" href="#514">514</a> <em class="jxr_javadoccomment">     * This adds the specified MDC property to the event.</em>
<a name="515" href="#515">515</a> <em class="jxr_javadoccomment">     * Access to the MDC is not synchronized, so this</em>
<a name="516" href="#516">516</a> <em class="jxr_javadoccomment">     * method should only be called when it is known that</em>
<a name="517" href="#517">517</a> <em class="jxr_javadoccomment">     * no other threads are accessing the MDC.</em>
<a name="518" href="#518">518</a> <em class="jxr_javadoccomment">     * @since 1.2.15</em>
<a name="519" href="#519">519</a> <em class="jxr_javadoccomment">     * @param propName</em>
<a name="520" href="#520">520</a> <em class="jxr_javadoccomment">     * @param propValue</em>
<a name="521" href="#521">521</a> <em class="jxr_javadoccomment">     */</em>
<a name="522" href="#522">522</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">void</strong> setProperty(<strong class="jxr_keyword">final</strong> String propName,
<a name="523" href="#523">523</a>                           <strong class="jxr_keyword">final</strong> String propValue) {
<a name="524" href="#524">524</a>         <strong class="jxr_keyword">if</strong> (mdcCopy == <strong class="jxr_keyword">null</strong>) {
<a name="525" href="#525">525</a>             getMDCCopy();
<a name="526" href="#526">526</a>         }
<a name="527" href="#527">527</a>         <strong class="jxr_keyword">if</strong> (mdcCopy == <strong class="jxr_keyword">null</strong>) {
<a name="528" href="#528">528</a>             mdcCopy = <strong class="jxr_keyword">new</strong> Hashtable();
<a name="529" href="#529">529</a>         }
<a name="530" href="#530">530</a>         mdcCopy.put(propName, propValue);      
<a name="531" href="#531">531</a>   }
<a name="532" href="#532">532</a> 
<a name="533" href="#533">533</a>     <em class="jxr_javadoccomment">/**</em>
<a name="534" href="#534">534</a> <em class="jxr_javadoccomment">     * Return a property for this event. The return value can be null.</em>
<a name="535" href="#535">535</a> <em class="jxr_javadoccomment">     *</em>
<a name="536" href="#536">536</a> <em class="jxr_javadoccomment">     * Equivalent to getMDC(String) in log4j 1.2.  Provided</em>
<a name="537" href="#537">537</a> <em class="jxr_javadoccomment">     * for compatibility with log4j 1.3.</em>
<a name="538" href="#538">538</a> <em class="jxr_javadoccomment">     *</em>
<a name="539" href="#539">539</a> <em class="jxr_javadoccomment">     * @param key property name</em>
<a name="540" href="#540">540</a> <em class="jxr_javadoccomment">     * @return property value or null if property not set</em>
<a name="541" href="#541">541</a> <em class="jxr_javadoccomment">     * @since 1.2.15</em>
<a name="542" href="#542">542</a> <em class="jxr_javadoccomment">     */</em>
<a name="543" href="#543">543</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> String getProperty(<strong class="jxr_keyword">final</strong> String key) {
<a name="544" href="#544">544</a>         Object value = getMDC(key);
<a name="545" href="#545">545</a>         String retval = <strong class="jxr_keyword">null</strong>;
<a name="546" href="#546">546</a>         <strong class="jxr_keyword">if</strong> (value != <strong class="jxr_keyword">null</strong>) {
<a name="547" href="#547">547</a>             retval = value.toString();
<a name="548" href="#548">548</a>         }
<a name="549" href="#549">549</a>         <strong class="jxr_keyword">return</strong> retval;
<a name="550" href="#550">550</a>     }
<a name="551" href="#551">551</a> 
<a name="552" href="#552">552</a>     <em class="jxr_javadoccomment">/**</em>
<a name="553" href="#553">553</a> <em class="jxr_javadoccomment">     * Check for the existence of location information without creating it</em>
<a name="554" href="#554">554</a> <em class="jxr_javadoccomment">     * (a byproduct of calling getLocationInformation).</em>
<a name="555" href="#555">555</a> <em class="jxr_javadoccomment">     * @return true if location information has been extracted.</em>
<a name="556" href="#556">556</a> <em class="jxr_javadoccomment">     * @since 1.2.15</em>
<a name="557" href="#557">557</a> <em class="jxr_javadoccomment">     */</em>
<a name="558" href="#558">558</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">boolean</strong> locationInformationExists() {
<a name="559" href="#559">559</a>       <strong class="jxr_keyword">return</strong> (locationInfo != <strong class="jxr_keyword">null</strong>);
<a name="560" href="#560">560</a>     }
<a name="561" href="#561">561</a> 
<a name="562" href="#562">562</a>     <em class="jxr_javadoccomment">/**</em>
<a name="563" href="#563">563</a> <em class="jxr_javadoccomment">     * Getter for the event's time stamp. The time stamp is calculated starting</em>
<a name="564" href="#564">564</a> <em class="jxr_javadoccomment">     * from 1970-01-01 GMT.</em>
<a name="565" href="#565">565</a> <em class="jxr_javadoccomment">     * @return timestamp</em>
<a name="566" href="#566">566</a> <em class="jxr_javadoccomment">     *</em>
<a name="567" href="#567">567</a> <em class="jxr_javadoccomment">     * @since 1.2.15</em>
<a name="568" href="#568">568</a> <em class="jxr_javadoccomment">     */</em>
<a name="569" href="#569">569</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">long</strong> getTimeStamp() {
<a name="570" href="#570">570</a>       <strong class="jxr_keyword">return</strong> timeStamp;
<a name="571" href="#571">571</a>     }
<a name="572" href="#572">572</a> 
<a name="573" href="#573">573</a>     <em class="jxr_javadoccomment">/**</em>
<a name="574" href="#574">574</a> <em class="jxr_javadoccomment">     * Returns the set of the key values in the properties</em>
<a name="575" href="#575">575</a> <em class="jxr_javadoccomment">     * for the event.</em>
<a name="576" href="#576">576</a> <em class="jxr_javadoccomment">     *</em>
<a name="577" href="#577">577</a> <em class="jxr_javadoccomment">     * The returned set is unmodifiable by the caller.</em>
<a name="578" href="#578">578</a> <em class="jxr_javadoccomment">     *</em>
<a name="579" href="#579">579</a> <em class="jxr_javadoccomment">     * Provided for compatibility with log4j 1.3</em>
<a name="580" href="#580">580</a> <em class="jxr_javadoccomment">     *</em>
<a name="581" href="#581">581</a> <em class="jxr_javadoccomment">     * @return Set an unmodifiable set of the property keys.</em>
<a name="582" href="#582">582</a> <em class="jxr_javadoccomment">     * @since 1.2.15</em>
<a name="583" href="#583">583</a> <em class="jxr_javadoccomment">     */</em>
<a name="584" href="#584">584</a>     <strong class="jxr_keyword">public</strong> Set getPropertyKeySet() {
<a name="585" href="#585">585</a>       <strong class="jxr_keyword">return</strong> getProperties().keySet();
<a name="586" href="#586">586</a>     }
<a name="587" href="#587">587</a> 
<a name="588" href="#588">588</a>     <em class="jxr_javadoccomment">/**</em>
<a name="589" href="#589">589</a> <em class="jxr_javadoccomment">     * Returns the set of properties</em>
<a name="590" href="#590">590</a> <em class="jxr_javadoccomment">     * for the event.</em>
<a name="591" href="#591">591</a> <em class="jxr_javadoccomment">     *</em>
<a name="592" href="#592">592</a> <em class="jxr_javadoccomment">     * The returned set is unmodifiable by the caller.</em>
<a name="593" href="#593">593</a> <em class="jxr_javadoccomment">     *</em>
<a name="594" href="#594">594</a> <em class="jxr_javadoccomment">     * Provided for compatibility with log4j 1.3</em>
<a name="595" href="#595">595</a> <em class="jxr_javadoccomment">     *</em>
<a name="596" href="#596">596</a> <em class="jxr_javadoccomment">     * @return Set an unmodifiable map of the properties.</em>
<a name="597" href="#597">597</a> <em class="jxr_javadoccomment">     * @since 1.2.15</em>
<a name="598" href="#598">598</a> <em class="jxr_javadoccomment">     */</em>
<a name="599" href="#599">599</a>     <strong class="jxr_keyword">public</strong> Map getProperties() {
<a name="600" href="#600">600</a>       getMDCCopy();
<a name="601" href="#601">601</a>       Map properties;
<a name="602" href="#602">602</a>       <strong class="jxr_keyword">if</strong> (mdcCopy == <strong class="jxr_keyword">null</strong>) {
<a name="603" href="#603">603</a>          properties = <strong class="jxr_keyword">new</strong> HashMap();
<a name="604" href="#604">604</a>       } <strong class="jxr_keyword">else</strong> {
<a name="605" href="#605">605</a>          properties = mdcCopy;
<a name="606" href="#606">606</a>       }
<a name="607" href="#607">607</a>       <strong class="jxr_keyword">return</strong> Collections.unmodifiableMap(properties);
<a name="608" href="#608">608</a>     }
<a name="609" href="#609">609</a> 
<a name="610" href="#610">610</a>     <em class="jxr_javadoccomment">/**</em>
<a name="611" href="#611">611</a> <em class="jxr_javadoccomment">     * Get the fully qualified name of the calling logger sub-class/wrapper.</em>
<a name="612" href="#612">612</a> <em class="jxr_javadoccomment">     * Provided for compatibility with log4j 1.3</em>
<a name="613" href="#613">613</a> <em class="jxr_javadoccomment">     * @return fully qualified class name, may be null.</em>
<a name="614" href="#614">614</a> <em class="jxr_javadoccomment">     * @since 1.2.15</em>
<a name="615" href="#615">615</a> <em class="jxr_javadoccomment">     */</em>
<a name="616" href="#616">616</a>     <strong class="jxr_keyword">public</strong> String getFQNOfLoggerClass() {
<a name="617" href="#617">617</a>       <strong class="jxr_keyword">return</strong> fqnOfCategoryClass;
<a name="618" href="#618">618</a>     }
<a name="619" href="#619">619</a> 
<a name="620" href="#620">620</a> 
<a name="621" href="#621">621</a>     <em class="jxr_javadoccomment">/**</em>
<a name="622" href="#622">622</a> <em class="jxr_javadoccomment">     * This removes the specified MDC property from the event.</em>
<a name="623" href="#623">623</a> <em class="jxr_javadoccomment">     * Access to the MDC is not synchronized, so this</em>
<a name="624" href="#624">624</a> <em class="jxr_javadoccomment">     * method should only be called when it is known that</em>
<a name="625" href="#625">625</a> <em class="jxr_javadoccomment">     * no other threads are accessing the MDC.</em>
<a name="626" href="#626">626</a> <em class="jxr_javadoccomment">     * @param propName the property name to remove</em>
<a name="627" href="#627">627</a> <em class="jxr_javadoccomment">     * @since 1.2.16</em>
<a name="628" href="#628">628</a> <em class="jxr_javadoccomment">     */</em>
<a name="629" href="#629">629</a>     <strong class="jxr_keyword">public</strong> Object removeProperty(String propName) {
<a name="630" href="#630">630</a>         <strong class="jxr_keyword">if</strong> (mdcCopy == <strong class="jxr_keyword">null</strong>) {
<a name="631" href="#631">631</a>             getMDCCopy();
<a name="632" href="#632">632</a>         }
<a name="633" href="#633">633</a>         <strong class="jxr_keyword">if</strong> (mdcCopy == <strong class="jxr_keyword">null</strong>) {
<a name="634" href="#634">634</a>             mdcCopy = <strong class="jxr_keyword">new</strong> Hashtable();
<a name="635" href="#635">635</a>         }
<a name="636" href="#636">636</a>         <strong class="jxr_keyword">return</strong> mdcCopy.remove(propName);
<a name="637" href="#637">637</a>     }
<a name="638" href="#638">638</a> }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

