<!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>TTCCLayout xref</title>
<link type="text/css" rel="stylesheet" href="../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../apidocs/org/apache/log4j/TTCCLayout.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: Christopher Williams</em>
<a name="19" href="#19">19</a>  <em class="jxr_comment">//               Mathias Bogaert</em>
<a name="20" href="#20">20</a>  
<a name="21" href="#21">21</a>  <strong class="jxr_keyword">package</strong> org.apache.log4j;
<a name="22" href="#22">22</a>  
<a name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.helpers.DateLayout;
<a name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.spi.LoggingEvent;
<a name="25" href="#25">25</a>  
<a name="26" href="#26">26</a>  <em class="jxr_javadoccomment">/**</em>
<a name="27" href="#27">27</a>  <em class="jxr_javadoccomment"> TTCC layout format consists of time, thread, category and nested</em>
<a name="28" href="#28">28</a>  <em class="jxr_javadoccomment"> diagnostic context information, hence the name.</em>
<a name="29" href="#29">29</a>  
<a name="30" href="#30">30</a>  <em class="jxr_javadoccomment"> &lt;p&gt;Each of the four fields can be individually enabled or</em>
<a name="31" href="#31">31</a>  <em class="jxr_javadoccomment"> disabled. The time format depends on the &lt;code&gt;DateFormat&lt;/code&gt;</em>
<a name="32" href="#32">32</a>  <em class="jxr_javadoccomment"> used.</em>
<a name="33" href="#33">33</a>  
<a name="34" href="#34">34</a>  <em class="jxr_javadoccomment"> &lt;p&gt;Here is an example TTCCLayout output with the</em>
<a name="35" href="#35">35</a>  <em class="jxr_javadoccomment"> {@link org.apache.log4j.helpers.RelativeTimeDateFormat}.</em>
<a name="36" href="#36">36</a>  
<a name="37" href="#37">37</a>  <em class="jxr_javadoccomment"> &lt;pre&gt;</em>
<a name="38" href="#38">38</a>  <em class="jxr_javadoccomment">176 [main] INFO  org.apache.log4j.examples.Sort - Populating an array of 2 elements in reverse order.</em>
<a name="39" href="#39">39</a>  <em class="jxr_javadoccomment">225 [main] INFO  org.apache.log4j.examples.SortAlgo - Entered the sort method.</em>
<a name="40" href="#40">40</a>  <em class="jxr_javadoccomment">262 [main] DEBUG org.apache.log4j.examples.SortAlgo.OUTER i=1 - Outer loop.</em>
<a name="41" href="#41">41</a>  <em class="jxr_javadoccomment">276 [main] DEBUG org.apache.log4j.examples.SortAlgo.SWAP i=1 j=0 - Swapping intArray[0] = 1 and intArray[1] = 0</em>
<a name="42" href="#42">42</a>  <em class="jxr_javadoccomment">290 [main] DEBUG org.apache.log4j.examples.SortAlgo.OUTER i=0 - Outer loop.</em>
<a name="43" href="#43">43</a>  <em class="jxr_javadoccomment">304 [main] INFO  org.apache.log4j.examples.SortAlgo.DUMP - Dump of interger array:</em>
<a name="44" href="#44">44</a>  <em class="jxr_javadoccomment">317 [main] INFO  org.apache.log4j.examples.SortAlgo.DUMP - Element [0] = 0</em>
<a name="45" href="#45">45</a>  <em class="jxr_javadoccomment">331 [main] INFO  org.apache.log4j.examples.SortAlgo.DUMP - Element [1] = 1</em>
<a name="46" href="#46">46</a>  <em class="jxr_javadoccomment">343 [main] INFO  org.apache.log4j.examples.Sort - The next log statement should be an error message.</em>
<a name="47" href="#47">47</a>  <em class="jxr_javadoccomment">346 [main] ERROR org.apache.log4j.examples.SortAlgo.DUMP - Tried to dump an uninitialized array.</em>
<a name="48" href="#48">48</a>  <em class="jxr_javadoccomment">        at org.apache.log4j.examples.SortAlgo.dump(SortAlgo.java:58)</em>
<a name="49" href="#49">49</a>  <em class="jxr_javadoccomment">        at org.apache.log4j.examples.Sort.main(Sort.java:64)</em>
<a name="50" href="#50">50</a>  <em class="jxr_javadoccomment">467 [main] INFO  org.apache.log4j.examples.Sort - Exiting main method.</em>
<a name="51" href="#51">51</a>  <em class="jxr_javadoccomment">&lt;/pre&gt;</em>
<a name="52" href="#52">52</a>  
<a name="53" href="#53">53</a>  <em class="jxr_javadoccomment">  &lt;p&gt;The first field is the number of milliseconds elapsed since the</em>
<a name="54" href="#54">54</a>  <em class="jxr_javadoccomment">  start of the program. The second field is the thread outputting the</em>
<a name="55" href="#55">55</a>  <em class="jxr_javadoccomment">  log statement. The third field is the level, the fourth field is</em>
<a name="56" href="#56">56</a>  <em class="jxr_javadoccomment">  the category to which the statement belongs.</em>
<a name="57" href="#57">57</a>  
<a name="58" href="#58">58</a>  <em class="jxr_javadoccomment">  &lt;p&gt;The fifth field (just before the '-') is the nested diagnostic</em>
<a name="59" href="#59">59</a>  <em class="jxr_javadoccomment">  context.  Note the nested diagnostic context may be empty as in the</em>
<a name="60" href="#60">60</a>  <em class="jxr_javadoccomment">  first two statements. The text after the '-' is the message of the</em>
<a name="61" href="#61">61</a>  <em class="jxr_javadoccomment">  statement.</em>
<a name="62" href="#62">62</a>  
<a name="63" href="#63">63</a>  <em class="jxr_javadoccomment">  &lt;p&gt;&lt;b&gt;WARNING&lt;/b&gt; Do not use the same TTCCLayout instance from</em>
<a name="64" href="#64">64</a>  <em class="jxr_javadoccomment">  within different appenders. The TTCCLayout is not thread safe when</em>
<a name="65" href="#65">65</a>  <em class="jxr_javadoccomment">  used in his way. However, it is perfectly safe to use a TTCCLayout</em>
<a name="66" href="#66">66</a>  <em class="jxr_javadoccomment">  instance from just one appender.</em>
<a name="67" href="#67">67</a>  
<a name="68" href="#68">68</a>  <em class="jxr_javadoccomment">  &lt;p&gt;{@link PatternLayout} offers a much more flexible alternative.</em>
<a name="69" href="#69">69</a>  
<a name="70" href="#70">70</a>  <em class="jxr_javadoccomment">  @author Ceki G&amp;uuml;lc&amp;uuml;</em>
<a name="71" href="#71">71</a>  <em class="jxr_javadoccomment">  @author &lt;A HREF="<a href="mailto:heinz.richter@ecmwf.int" target="alexandria_uri">mailto:heinz.richter@ecmwf.int</a>"&gt;Heinz Richter&lt;/a&gt;</em>
<a name="72" href="#72">72</a>  
<a name="73" href="#73">73</a>  <em class="jxr_javadoccomment">*/</em>
<a name="74" href="#74">74</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../org/apache/log4j/TTCCLayout.html">TTCCLayout</a> <strong class="jxr_keyword">extends</strong> <a href="../../../org/apache/log4j/helpers/DateLayout.html">DateLayout</a> {
<a name="75" href="#75">75</a>  
<a name="76" href="#76">76</a>    <em class="jxr_comment">// Internal representation of options</em>
<a name="77" href="#77">77</a>    <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> threadPrinting    = <strong class="jxr_keyword">true</strong>;
<a name="78" href="#78">78</a>    <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> categoryPrefixing = <strong class="jxr_keyword">true</strong>;
<a name="79" href="#79">79</a>    <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> contextPrinting   = <strong class="jxr_keyword">true</strong>;
<a name="80" href="#80">80</a>  
<a name="81" href="#81">81</a>  
<a name="82" href="#82">82</a>    <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">final</strong> StringBuffer buf = <strong class="jxr_keyword">new</strong> StringBuffer(256);
<a name="83" href="#83">83</a>  
<a name="84" href="#84">84</a>  
<a name="85" href="#85">85</a>    <em class="jxr_javadoccomment">/**</em>
<a name="86" href="#86">86</a>  <em class="jxr_javadoccomment">     Instantiate a TTCCLayout object with {@link</em>
<a name="87" href="#87">87</a>  <em class="jxr_javadoccomment">     org.apache.log4j.helpers.RelativeTimeDateFormat} as the date</em>
<a name="88" href="#88">88</a>  <em class="jxr_javadoccomment">     formatter in the local time zone.</em>
<a name="89" href="#89">89</a>  
<a name="90" href="#90">90</a>  <em class="jxr_javadoccomment">     @since 0.7.5 */</em>
<a name="91" href="#91">91</a>    <strong class="jxr_keyword">public</strong> <a href="../../../org/apache/log4j/TTCCLayout.html">TTCCLayout</a>() {
<a name="92" href="#92">92</a>      <strong class="jxr_keyword">this</strong>.setDateFormat(RELATIVE_TIME_DATE_FORMAT, <strong class="jxr_keyword">null</strong>);
<a name="93" href="#93">93</a>    }
<a name="94" href="#94">94</a>  
<a name="95" href="#95">95</a>  
<a name="96" href="#96">96</a>    <em class="jxr_javadoccomment">/**</em>
<a name="97" href="#97">97</a>  <em class="jxr_javadoccomment">     Instantiate a TTCCLayout object using the local time zone. The</em>
<a name="98" href="#98">98</a>  <em class="jxr_javadoccomment">     DateFormat used will depend on the &lt;code&gt;dateFormatType&lt;/code&gt;.</em>
<a name="99" href="#99">99</a>  
<a name="100" href="#100">100</a> <em class="jxr_javadoccomment">     &lt;p&gt;This constructor just calls the {@link</em>
<a name="101" href="#101">101</a> <em class="jxr_javadoccomment">     DateLayout#setDateFormat} method.</em>
<a name="102" href="#102">102</a> 
<a name="103" href="#103">103</a> <em class="jxr_javadoccomment">     */</em>
<a name="104" href="#104">104</a>   <strong class="jxr_keyword">public</strong> <a href="../../../org/apache/log4j/TTCCLayout.html">TTCCLayout</a>(String dateFormatType) {
<a name="105" href="#105">105</a>     <strong class="jxr_keyword">this</strong>.setDateFormat(dateFormatType);
<a name="106" href="#106">106</a>   }
<a name="107" href="#107">107</a> 
<a name="108" href="#108">108</a> 
<a name="109" href="#109">109</a>   <em class="jxr_javadoccomment">/**</em>
<a name="110" href="#110">110</a> <em class="jxr_javadoccomment">     The &lt;b&gt;ThreadPrinting&lt;/b&gt; option specifies whether the name of the</em>
<a name="111" href="#111">111</a> <em class="jxr_javadoccomment">     current thread is part of log output or not. This is true by default.</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>
<a name="114" href="#114">114</a>   <strong class="jxr_keyword">void</strong> setThreadPrinting(<strong class="jxr_keyword">boolean</strong> threadPrinting) {
<a name="115" href="#115">115</a>     <strong class="jxr_keyword">this</strong>.threadPrinting = threadPrinting;
<a name="116" href="#116">116</a>   }
<a name="117" href="#117">117</a> 
<a name="118" href="#118">118</a>   <em class="jxr_javadoccomment">/**</em>
<a name="119" href="#119">119</a> <em class="jxr_javadoccomment">     Returns value of the &lt;b&gt;ThreadPrinting&lt;/b&gt; option.</em>
<a name="120" href="#120">120</a> <em class="jxr_javadoccomment">   */</em>
<a name="121" href="#121">121</a>   <strong class="jxr_keyword">public</strong>
<a name="122" href="#122">122</a>   <strong class="jxr_keyword">boolean</strong> getThreadPrinting() {
<a name="123" href="#123">123</a>     <strong class="jxr_keyword">return</strong> threadPrinting;
<a name="124" href="#124">124</a>   }
<a name="125" href="#125">125</a> 
<a name="126" href="#126">126</a>   <em class="jxr_javadoccomment">/**</em>
<a name="127" href="#127">127</a> <em class="jxr_javadoccomment">     The &lt;b&gt;CategoryPrefixing&lt;/b&gt; option specifies whether {@link Category}</em>
<a name="128" href="#128">128</a> <em class="jxr_javadoccomment">     name is part of log output or not. This is true by default.</em>
<a name="129" href="#129">129</a> <em class="jxr_javadoccomment">   */</em>
<a name="130" href="#130">130</a>   <strong class="jxr_keyword">public</strong>
<a name="131" href="#131">131</a>   <strong class="jxr_keyword">void</strong> setCategoryPrefixing(<strong class="jxr_keyword">boolean</strong> categoryPrefixing) {
<a name="132" href="#132">132</a>     <strong class="jxr_keyword">this</strong>.categoryPrefixing = categoryPrefixing;
<a name="133" href="#133">133</a>   }
<a name="134" href="#134">134</a> 
<a name="135" href="#135">135</a>   <em class="jxr_javadoccomment">/**</em>
<a name="136" href="#136">136</a> <em class="jxr_javadoccomment">     Returns value of the &lt;b&gt;CategoryPrefixing&lt;/b&gt; option.</em>
<a name="137" href="#137">137</a> <em class="jxr_javadoccomment">   */</em>
<a name="138" href="#138">138</a>   <strong class="jxr_keyword">public</strong>
<a name="139" href="#139">139</a>   <strong class="jxr_keyword">boolean</strong> getCategoryPrefixing() {
<a name="140" href="#140">140</a>     <strong class="jxr_keyword">return</strong> categoryPrefixing;
<a name="141" href="#141">141</a>   }
<a name="142" href="#142">142</a> 
<a name="143" href="#143">143</a>   <em class="jxr_javadoccomment">/**</em>
<a name="144" href="#144">144</a> <em class="jxr_javadoccomment">     The &lt;b&gt;ContextPrinting&lt;/b&gt; option specifies log output will include</em>
<a name="145" href="#145">145</a> <em class="jxr_javadoccomment">     the nested context information belonging to the current thread.</em>
<a name="146" href="#146">146</a> <em class="jxr_javadoccomment">     This is true by default.</em>
<a name="147" href="#147">147</a> <em class="jxr_javadoccomment">   */</em>
<a name="148" href="#148">148</a>   <strong class="jxr_keyword">public</strong>
<a name="149" href="#149">149</a>   <strong class="jxr_keyword">void</strong> setContextPrinting(<strong class="jxr_keyword">boolean</strong> contextPrinting) {
<a name="150" href="#150">150</a>     <strong class="jxr_keyword">this</strong>.contextPrinting = contextPrinting;
<a name="151" href="#151">151</a>   }
<a name="152" href="#152">152</a> 
<a name="153" href="#153">153</a>   <em class="jxr_javadoccomment">/**</em>
<a name="154" href="#154">154</a> <em class="jxr_javadoccomment">     Returns value of the &lt;b&gt;ContextPrinting&lt;/b&gt; option.</em>
<a name="155" href="#155">155</a> <em class="jxr_javadoccomment">   */</em>
<a name="156" href="#156">156</a>   <strong class="jxr_keyword">public</strong>
<a name="157" href="#157">157</a>   <strong class="jxr_keyword">boolean</strong> getContextPrinting() {
<a name="158" href="#158">158</a>     <strong class="jxr_keyword">return</strong> contextPrinting;
<a name="159" href="#159">159</a>   }
<a name="160" href="#160">160</a> 
<a name="161" href="#161">161</a>   <em class="jxr_javadoccomment">/**</em>
<a name="162" href="#162">162</a> <em class="jxr_javadoccomment">   In addition to the level of the statement and message, the</em>
<a name="163" href="#163">163</a> <em class="jxr_javadoccomment">   returned byte array includes time, thread, category and {@link NDC}</em>
<a name="164" href="#164">164</a> <em class="jxr_javadoccomment">   information.</em>
<a name="165" href="#165">165</a> 
<a name="166" href="#166">166</a> <em class="jxr_javadoccomment">   &lt;p&gt;Time, thread, category and diagnostic context are printed</em>
<a name="167" href="#167">167</a> <em class="jxr_javadoccomment">   depending on options.</em>
<a name="168" href="#168">168</a> 
<a name="169" href="#169">169</a> <em class="jxr_javadoccomment">    @param event The event to format</em>
<a name="170" href="#170">170</a> 
<a name="171" href="#171">171</a> <em class="jxr_javadoccomment">  */</em>
<a name="172" href="#172">172</a>   <strong class="jxr_keyword">public</strong>
<a name="173" href="#173">173</a>   String format(<a href="../../../org/apache/log4j/spi/LoggingEvent.html">LoggingEvent</a> event) {
<a name="174" href="#174">174</a> 
<a name="175" href="#175">175</a>     <em class="jxr_comment">// Reset buf</em>
<a name="176" href="#176">176</a>     buf.setLength(0);
<a name="177" href="#177">177</a> 
<a name="178" href="#178">178</a>     dateFormat(buf, event);
<a name="179" href="#179">179</a> 
<a name="180" href="#180">180</a>     <strong class="jxr_keyword">if</strong>(<strong class="jxr_keyword">this</strong>.threadPrinting) {
<a name="181" href="#181">181</a>       buf.append('[');
<a name="182" href="#182">182</a>       buf.append(event.getThreadName());
<a name="183" href="#183">183</a>       buf.append(<span class="jxr_string">"] "</span>);
<a name="184" href="#184">184</a>     }
<a name="185" href="#185">185</a>     buf.append(event.getLevel().toString());
<a name="186" href="#186">186</a>     buf.append(' ');
<a name="187" href="#187">187</a> 
<a name="188" href="#188">188</a>     <strong class="jxr_keyword">if</strong>(<strong class="jxr_keyword">this</strong>.categoryPrefixing) {
<a name="189" href="#189">189</a>       buf.append(event.getLoggerName());
<a name="190" href="#190">190</a>       buf.append(' ');
<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">if</strong>(<strong class="jxr_keyword">this</strong>.contextPrinting) {
<a name="194" href="#194">194</a>        String ndc = event.getNDC();
<a name="195" href="#195">195</a> 
<a name="196" href="#196">196</a>       <strong class="jxr_keyword">if</strong>(ndc != <strong class="jxr_keyword">null</strong>) {
<a name="197" href="#197">197</a> 	buf.append(ndc);
<a name="198" href="#198">198</a> 	buf.append(' ');
<a name="199" href="#199">199</a>       }
<a name="200" href="#200">200</a>     }
<a name="201" href="#201">201</a>     buf.append(<span class="jxr_string">"- "</span>);
<a name="202" href="#202">202</a>     buf.append(event.getRenderedMessage());
<a name="203" href="#203">203</a>     buf.append(LINE_SEP);
<a name="204" href="#204">204</a>     <strong class="jxr_keyword">return</strong> buf.toString();
<a name="205" href="#205">205</a>   }
<a name="206" href="#206">206</a> 
<a name="207" href="#207">207</a>  <em class="jxr_javadoccomment">/**</em>
<a name="208" href="#208">208</a> <em class="jxr_javadoccomment">     The TTCCLayout does not handle the throwable contained within</em>
<a name="209" href="#209">209</a> <em class="jxr_javadoccomment">     {@link LoggingEvent LoggingEvents}. Thus, it returns</em>
<a name="210" href="#210">210</a> <em class="jxr_javadoccomment">     &lt;code&gt;true&lt;/code&gt;.</em>
<a name="211" href="#211">211</a> 
<a name="212" href="#212">212</a> <em class="jxr_javadoccomment">     @since version 0.8.4 */</em>
<a name="213" href="#213">213</a>   <strong class="jxr_keyword">public</strong>
<a name="214" href="#214">214</a>   <strong class="jxr_keyword">boolean</strong> ignoresThrowable() {
<a name="215" href="#215">215</a>     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a name="216" href="#216">216</a>   }
<a name="217" href="#217">217</a> }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

