<!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>SyslogAppender xref</title>
<link type="text/css" rel="stylesheet" href="../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../apidocs/org/apache/log4j/net/SyslogAppender.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.net;
<a name="19" href="#19">19</a>  
<a name="20" href="#20">20</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.AppenderSkeleton;
<a name="21" href="#21">21</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.Layout;
<a name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.helpers.SyslogQuietWriter;
<a name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.helpers.SyslogWriter;
<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>  <strong class="jxr_keyword">import</strong> java.text.SimpleDateFormat;
<a name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> java.util.Date;
<a name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> java.util.Locale;
<a name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> java.net.InetAddress;
<a name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> java.net.UnknownHostException;
<a name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> java.io.IOException;
<a name="32" href="#32">32</a>  
<a name="33" href="#33">33</a>  <em class="jxr_comment">// Contributors: Yves Bossel &lt;ybossel@opengets.cl&gt;</em>
<a name="34" href="#34">34</a>  <em class="jxr_comment">//               Christopher Taylor &lt;cstaylor@pacbell.net&gt;</em>
<a name="35" href="#35">35</a>  
<a name="36" href="#36">36</a>  <em class="jxr_javadoccomment">/**</em>
<a name="37" href="#37">37</a>  <em class="jxr_javadoccomment">    Use SyslogAppender to send log messages to a remote syslog daemon.</em>
<a name="38" href="#38">38</a>  
<a name="39" href="#39">39</a>  <em class="jxr_javadoccomment">    @author Ceki G&amp;uuml;lc&amp;uuml;</em>
<a name="40" href="#40">40</a>  <em class="jxr_javadoccomment">    @author Anders Kristensen</em>
<a name="41" href="#41">41</a>  <em class="jxr_javadoccomment"> */</em>
<a name="42" href="#42">42</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/log4j/net/SyslogAppender.html">SyslogAppender</a> <strong class="jxr_keyword">extends</strong> <a href="../../../../org/apache/log4j/AppenderSkeleton.html">AppenderSkeleton</a> {
<a name="43" href="#43">43</a>    <em class="jxr_comment">// The following constants are extracted from a syslog.h file</em>
<a name="44" href="#44">44</a>    <em class="jxr_comment">// copyrighted by the Regents of the University of California</em>
<a name="45" href="#45">45</a>    <em class="jxr_comment">// I hope nobody at Berkley gets offended.</em>
<a name="46" href="#46">46</a>  
<a name="47" href="#47">47</a>    <em class="jxr_javadoccomment">/**</em><em class="jxr_javadoccomment"> Kernel messages */</em>
<a name="48" href="#48">48</a>    <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">int</strong> LOG_KERN     = 0;
<a name="49" href="#49">49</a>    <em class="jxr_javadoccomment">/**</em><em class="jxr_javadoccomment"> Random user-level messages */</em>
<a name="50" href="#50">50</a>    <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">int</strong> LOG_USER     = 1&lt;&lt;3;
<a name="51" href="#51">51</a>    <em class="jxr_javadoccomment">/**</em><em class="jxr_javadoccomment"> Mail system */</em>
<a name="52" href="#52">52</a>    <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">int</strong> LOG_MAIL     = 2&lt;&lt;3;
<a name="53" href="#53">53</a>    <em class="jxr_javadoccomment">/**</em><em class="jxr_javadoccomment"> System daemons */</em>
<a name="54" href="#54">54</a>    <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">int</strong> LOG_DAEMON   = 3&lt;&lt;3;
<a name="55" href="#55">55</a>    <em class="jxr_javadoccomment">/**</em><em class="jxr_javadoccomment"> security/authorization messages */</em>
<a name="56" href="#56">56</a>    <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">int</strong> LOG_AUTH     = 4&lt;&lt;3;
<a name="57" href="#57">57</a>    <em class="jxr_javadoccomment">/**</em><em class="jxr_javadoccomment"> messages generated internally by syslogd */</em>
<a name="58" href="#58">58</a>    <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">int</strong> LOG_SYSLOG   = 5&lt;&lt;3;
<a name="59" href="#59">59</a>  
<a name="60" href="#60">60</a>    <em class="jxr_javadoccomment">/**</em><em class="jxr_javadoccomment"> line printer subsystem */</em>
<a name="61" href="#61">61</a>    <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">int</strong> LOG_LPR      = 6&lt;&lt;3;
<a name="62" href="#62">62</a>    <em class="jxr_javadoccomment">/**</em><em class="jxr_javadoccomment"> network news subsystem */</em>
<a name="63" href="#63">63</a>    <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">int</strong> LOG_NEWS     = 7&lt;&lt;3;
<a name="64" href="#64">64</a>    <em class="jxr_javadoccomment">/**</em><em class="jxr_javadoccomment"> UUCP subsystem */</em>
<a name="65" href="#65">65</a>    <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">int</strong> LOG_UUCP     = 8&lt;&lt;3;
<a name="66" href="#66">66</a>    <em class="jxr_javadoccomment">/**</em><em class="jxr_javadoccomment"> clock daemon */</em>
<a name="67" href="#67">67</a>    <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">int</strong> LOG_CRON     = 9&lt;&lt;3;
<a name="68" href="#68">68</a>    <em class="jxr_javadoccomment">/**</em><em class="jxr_javadoccomment"> security/authorization  messages (private) */</em>
<a name="69" href="#69">69</a>    <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">int</strong> LOG_AUTHPRIV = 10&lt;&lt;3;
<a name="70" href="#70">70</a>    <em class="jxr_javadoccomment">/**</em><em class="jxr_javadoccomment"> ftp daemon */</em>
<a name="71" href="#71">71</a>    <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">int</strong> LOG_FTP      = 11&lt;&lt;3;
<a name="72" href="#72">72</a>  
<a name="73" href="#73">73</a>    <em class="jxr_comment">// other codes through 15 reserved for system use</em>
<a name="74" href="#74">74</a>    <em class="jxr_javadoccomment">/**</em><em class="jxr_javadoccomment"> reserved for local use */</em>
<a name="75" href="#75">75</a>    <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">int</strong> LOG_LOCAL0 = 16&lt;&lt;3;
<a name="76" href="#76">76</a>    <em class="jxr_javadoccomment">/**</em><em class="jxr_javadoccomment"> reserved for local use */</em>
<a name="77" href="#77">77</a>    <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">int</strong> LOG_LOCAL1 = 17&lt;&lt;3;
<a name="78" href="#78">78</a>    <em class="jxr_javadoccomment">/**</em><em class="jxr_javadoccomment"> reserved for local use */</em>
<a name="79" href="#79">79</a>    <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">int</strong> LOG_LOCAL2 = 18&lt;&lt;3;
<a name="80" href="#80">80</a>    <em class="jxr_javadoccomment">/**</em><em class="jxr_javadoccomment"> reserved for local use */</em>
<a name="81" href="#81">81</a>    <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">int</strong> LOG_LOCAL3 = 19&lt;&lt;3;
<a name="82" href="#82">82</a>    <em class="jxr_javadoccomment">/**</em><em class="jxr_javadoccomment"> reserved for local use */</em>
<a name="83" href="#83">83</a>    <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">int</strong> LOG_LOCAL4 = 20&lt;&lt;3;
<a name="84" href="#84">84</a>    <em class="jxr_javadoccomment">/**</em><em class="jxr_javadoccomment"> reserved for local use */</em>
<a name="85" href="#85">85</a>    <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">int</strong> LOG_LOCAL5 = 21&lt;&lt;3;
<a name="86" href="#86">86</a>    <em class="jxr_javadoccomment">/**</em><em class="jxr_javadoccomment"> reserved for local use */</em>
<a name="87" href="#87">87</a>    <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">int</strong> LOG_LOCAL6 = 22&lt;&lt;3;
<a name="88" href="#88">88</a>    <em class="jxr_javadoccomment">/**</em><em class="jxr_javadoccomment"> reserved for local use*/</em>
<a name="89" href="#89">89</a>    <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">int</strong> LOG_LOCAL7 = 23&lt;&lt;3;
<a name="90" href="#90">90</a>  
<a name="91" href="#91">91</a>    <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> SYSLOG_HOST_OI = 0;
<a name="92" href="#92">92</a>    <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> FACILITY_OI = 1;
<a name="93" href="#93">93</a>  
<a name="94" href="#94">94</a>    <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String TAB = <span class="jxr_string">"    "</span>;
<a name="95" href="#95">95</a>  
<a name="96" href="#96">96</a>    <em class="jxr_comment">// Have LOG_USER as default</em>
<a name="97" href="#97">97</a>    <strong class="jxr_keyword">int</strong> syslogFacility = LOG_USER;
<a name="98" href="#98">98</a>    String facilityStr;
<a name="99" href="#99">99</a>    <strong class="jxr_keyword">boolean</strong> facilityPrinting = false;
<a name="100" href="#100">100</a> 
<a name="101" href="#101">101</a>   <em class="jxr_comment">//SyslogTracerPrintWriter stp;</em>
<a name="102" href="#102">102</a>   <a href="../../../../org/apache/log4j/helpers/SyslogQuietWriter.html">SyslogQuietWriter</a> sqw;
<a name="103" href="#103">103</a>   String syslogHost;
<a name="104" href="#104">104</a> 
<a name="105" href="#105">105</a>     <em class="jxr_javadoccomment">/**</em>
<a name="106" href="#106">106</a> <em class="jxr_javadoccomment">     * If true, the appender will generate the HEADER (timestamp and host name)</em>
<a name="107" href="#107">107</a> <em class="jxr_javadoccomment">     * part of the syslog packet.</em>
<a name="108" href="#108">108</a> <em class="jxr_javadoccomment">     * @since 1.2.15</em>
<a name="109" href="#109">109</a> <em class="jxr_javadoccomment">     */</em>
<a name="110" href="#110">110</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> header = false;
<a name="111" href="#111">111</a>     <em class="jxr_javadoccomment">/**</em>
<a name="112" href="#112">112</a> <em class="jxr_javadoccomment">     * Date format used if header = true.</em>
<a name="113" href="#113">113</a> <em class="jxr_javadoccomment">     * @since 1.2.15</em>
<a name="114" href="#114">114</a> <em class="jxr_javadoccomment">     */</em>
<a name="115" href="#115">115</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> SimpleDateFormat dateFormat = <strong class="jxr_keyword">new</strong> SimpleDateFormat(<span class="jxr_string">"MMM dd HH:mm:ss "</span>, Locale.ENGLISH);
<a name="116" href="#116">116</a>     <em class="jxr_javadoccomment">/**</em>
<a name="117" href="#117">117</a> <em class="jxr_javadoccomment">     * Host name used to identify messages from this appender.</em>
<a name="118" href="#118">118</a> <em class="jxr_javadoccomment">     * @since 1.2.15</em>
<a name="119" href="#119">119</a> <em class="jxr_javadoccomment">     */</em>
<a name="120" href="#120">120</a>   <strong class="jxr_keyword">private</strong> String localHostname;
<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">     * Set to true after the header of the layout has been sent or if it has none.</em>
<a name="124" href="#124">124</a> <em class="jxr_javadoccomment">     */</em>
<a name="125" href="#125">125</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> layoutHeaderChecked = false;
<a name="126" href="#126">126</a> 
<a name="127" href="#127">127</a>   <strong class="jxr_keyword">public</strong>
<a name="128" href="#128">128</a>   <a href="../../../../org/apache/log4j/net/SyslogAppender.html">SyslogAppender</a>() {
<a name="129" href="#129">129</a>     <strong class="jxr_keyword">this</strong>.initSyslogFacilityStr();
<a name="130" href="#130">130</a>   }
<a name="131" href="#131">131</a> 
<a name="132" href="#132">132</a>   <strong class="jxr_keyword">public</strong>
<a name="133" href="#133">133</a>   <a href="../../../../org/apache/log4j/net/SyslogAppender.html">SyslogAppender</a>(<a href="../../../../org/apache/log4j/Layout.html">Layout</a> layout, <strong class="jxr_keyword">int</strong> syslogFacility) {
<a name="134" href="#134">134</a>     <strong class="jxr_keyword">this</strong>.layout = layout;
<a name="135" href="#135">135</a>     <strong class="jxr_keyword">this</strong>.syslogFacility = syslogFacility;
<a name="136" href="#136">136</a>     <strong class="jxr_keyword">this</strong>.initSyslogFacilityStr();
<a name="137" href="#137">137</a>   }
<a name="138" href="#138">138</a> 
<a name="139" href="#139">139</a>   <strong class="jxr_keyword">public</strong>
<a name="140" href="#140">140</a>   <a href="../../../../org/apache/log4j/net/SyslogAppender.html">SyslogAppender</a>(<a href="../../../../org/apache/log4j/Layout.html">Layout</a> layout, String syslogHost, <strong class="jxr_keyword">int</strong> syslogFacility) {
<a name="141" href="#141">141</a>     <strong class="jxr_keyword">this</strong>(layout, syslogFacility);
<a name="142" href="#142">142</a>     setSyslogHost(syslogHost);
<a name="143" href="#143">143</a>   }
<a name="144" href="#144">144</a> 
<a name="145" href="#145">145</a>   <em class="jxr_javadoccomment">/**</em>
<a name="146" href="#146">146</a> <em class="jxr_javadoccomment">     Release any resources held by this SyslogAppender.</em>
<a name="147" href="#147">147</a> 
<a name="148" href="#148">148</a> <em class="jxr_javadoccomment">     @since 0.8.4</em>
<a name="149" href="#149">149</a> <em class="jxr_javadoccomment">   */</em>
<a name="150" href="#150">150</a>   <strong class="jxr_keyword">synchronized</strong>
<a name="151" href="#151">151</a>   <strong class="jxr_keyword">public</strong>
<a name="152" href="#152">152</a>   <strong class="jxr_keyword">void</strong> close() {
<a name="153" href="#153">153</a>     closed = <strong class="jxr_keyword">true</strong>;
<a name="154" href="#154">154</a>     <strong class="jxr_keyword">if</strong> (sqw != <strong class="jxr_keyword">null</strong>) {
<a name="155" href="#155">155</a>         <strong class="jxr_keyword">try</strong> {
<a name="156" href="#156">156</a>             <strong class="jxr_keyword">if</strong> (layoutHeaderChecked &amp;&amp; layout != <strong class="jxr_keyword">null</strong> &amp;&amp; layout.getFooter() != <strong class="jxr_keyword">null</strong>) {
<a name="157" href="#157">157</a>                 sendLayoutMessage(layout.getFooter());
<a name="158" href="#158">158</a>             }
<a name="159" href="#159">159</a>             sqw.close();
<a name="160" href="#160">160</a>             sqw = <strong class="jxr_keyword">null</strong>;
<a name="161" href="#161">161</a>         } <strong class="jxr_keyword">catch</strong>(java.io.InterruptedIOException e) {
<a name="162" href="#162">162</a>             Thread.currentThread().interrupt();
<a name="163" href="#163">163</a>             sqw = <strong class="jxr_keyword">null</strong>;
<a name="164" href="#164">164</a>         } <strong class="jxr_keyword">catch</strong>(IOException e) {
<a name="165" href="#165">165</a>             sqw = <strong class="jxr_keyword">null</strong>;
<a name="166" href="#166">166</a>         }
<a name="167" href="#167">167</a>     }
<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">private</strong>
<a name="171" href="#171">171</a>   <strong class="jxr_keyword">void</strong> initSyslogFacilityStr() {
<a name="172" href="#172">172</a>     facilityStr = getFacilityString(<strong class="jxr_keyword">this</strong>.syslogFacility);
<a name="173" href="#173">173</a> 
<a name="174" href="#174">174</a>     <strong class="jxr_keyword">if</strong> (facilityStr == <strong class="jxr_keyword">null</strong>) {
<a name="175" href="#175">175</a>       System.err.println(<span class="jxr_string">"\&quot;"</span> + syslogFacility +
<a name="176" href="#176">176</a>                   <span class="jxr_string">"\&quot; is an unknown syslog facility. Defaulting to \&quot;USER\&quot;."</span>);
<a name="177" href="#177">177</a>       <strong class="jxr_keyword">this</strong>.syslogFacility = LOG_USER;
<a name="178" href="#178">178</a>       facilityStr = <span class="jxr_string">"user:"</span>;
<a name="179" href="#179">179</a>     } <strong class="jxr_keyword">else</strong> {
<a name="180" href="#180">180</a>       facilityStr += <span class="jxr_string">":"</span>;
<a name="181" href="#181">181</a>     }
<a name="182" href="#182">182</a>   }
<a name="183" href="#183">183</a> 
<a name="184" href="#184">184</a>   <em class="jxr_javadoccomment">/**</em>
<a name="185" href="#185">185</a> <em class="jxr_javadoccomment">     Returns the specified syslog facility as a lower-case String,</em>
<a name="186" href="#186">186</a> <em class="jxr_javadoccomment">     e.g. "kern", "user", etc.</em>
<a name="187" href="#187">187</a> <em class="jxr_javadoccomment">  */</em>
<a name="188" href="#188">188</a>   <strong class="jxr_keyword">public</strong>
<a name="189" href="#189">189</a>   <strong class="jxr_keyword">static</strong>
<a name="190" href="#190">190</a>   String getFacilityString(<strong class="jxr_keyword">int</strong> syslogFacility) {
<a name="191" href="#191">191</a>     <strong class="jxr_keyword">switch</strong>(syslogFacility) {
<a name="192" href="#192">192</a>     <strong class="jxr_keyword">case</strong> LOG_KERN:      <strong class="jxr_keyword">return</strong> <span class="jxr_string">"kern"</span>;
<a name="193" href="#193">193</a>     <strong class="jxr_keyword">case</strong> LOG_USER:      <strong class="jxr_keyword">return</strong> <span class="jxr_string">"user"</span>;
<a name="194" href="#194">194</a>     <strong class="jxr_keyword">case</strong> LOG_MAIL:      <strong class="jxr_keyword">return</strong> <span class="jxr_string">"mail"</span>;
<a name="195" href="#195">195</a>     <strong class="jxr_keyword">case</strong> LOG_DAEMON:    <strong class="jxr_keyword">return</strong> <span class="jxr_string">"daemon"</span>;
<a name="196" href="#196">196</a>     <strong class="jxr_keyword">case</strong> LOG_AUTH:      <strong class="jxr_keyword">return</strong> <span class="jxr_string">"auth"</span>;
<a name="197" href="#197">197</a>     <strong class="jxr_keyword">case</strong> LOG_SYSLOG:    <strong class="jxr_keyword">return</strong> <span class="jxr_string">"syslog"</span>;
<a name="198" href="#198">198</a>     <strong class="jxr_keyword">case</strong> LOG_LPR:       <strong class="jxr_keyword">return</strong> <span class="jxr_string">"lpr"</span>;
<a name="199" href="#199">199</a>     <strong class="jxr_keyword">case</strong> LOG_NEWS:      <strong class="jxr_keyword">return</strong> <span class="jxr_string">"news"</span>;
<a name="200" href="#200">200</a>     <strong class="jxr_keyword">case</strong> LOG_UUCP:      <strong class="jxr_keyword">return</strong> <span class="jxr_string">"uucp"</span>;
<a name="201" href="#201">201</a>     <strong class="jxr_keyword">case</strong> LOG_CRON:      <strong class="jxr_keyword">return</strong> <span class="jxr_string">"cron"</span>;
<a name="202" href="#202">202</a>     <strong class="jxr_keyword">case</strong> LOG_AUTHPRIV:  <strong class="jxr_keyword">return</strong> <span class="jxr_string">"authpriv"</span>;
<a name="203" href="#203">203</a>     <strong class="jxr_keyword">case</strong> LOG_FTP:       <strong class="jxr_keyword">return</strong> <span class="jxr_string">"ftp"</span>;
<a name="204" href="#204">204</a>     <strong class="jxr_keyword">case</strong> LOG_LOCAL0:    <strong class="jxr_keyword">return</strong> <span class="jxr_string">"local0"</span>;
<a name="205" href="#205">205</a>     <strong class="jxr_keyword">case</strong> LOG_LOCAL1:    <strong class="jxr_keyword">return</strong> <span class="jxr_string">"local1"</span>;
<a name="206" href="#206">206</a>     <strong class="jxr_keyword">case</strong> LOG_LOCAL2:    <strong class="jxr_keyword">return</strong> <span class="jxr_string">"local2"</span>;
<a name="207" href="#207">207</a>     <strong class="jxr_keyword">case</strong> LOG_LOCAL3:    <strong class="jxr_keyword">return</strong> <span class="jxr_string">"local3"</span>;
<a name="208" href="#208">208</a>     <strong class="jxr_keyword">case</strong> LOG_LOCAL4:    <strong class="jxr_keyword">return</strong> <span class="jxr_string">"local4"</span>;
<a name="209" href="#209">209</a>     <strong class="jxr_keyword">case</strong> LOG_LOCAL5:    <strong class="jxr_keyword">return</strong> <span class="jxr_string">"local5"</span>;
<a name="210" href="#210">210</a>     <strong class="jxr_keyword">case</strong> LOG_LOCAL6:    <strong class="jxr_keyword">return</strong> <span class="jxr_string">"local6"</span>;
<a name="211" href="#211">211</a>     <strong class="jxr_keyword">case</strong> LOG_LOCAL7:    <strong class="jxr_keyword">return</strong> <span class="jxr_string">"local7"</span>;
<a name="212" href="#212">212</a>     <strong class="jxr_keyword">default</strong>:            <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a name="213" href="#213">213</a>     }
<a name="214" href="#214">214</a>   }
<a name="215" href="#215">215</a> 
<a name="216" href="#216">216</a>   <em class="jxr_javadoccomment">/**</em>
<a name="217" href="#217">217</a> <em class="jxr_javadoccomment">     Returns the integer value corresponding to the named syslog</em>
<a name="218" href="#218">218</a> <em class="jxr_javadoccomment">     facility, or -1 if it couldn't be recognized.</em>
<a name="219" href="#219">219</a> 
<a name="220" href="#220">220</a> <em class="jxr_javadoccomment">     @param facilityName one of the strings KERN, USER, MAIL, DAEMON,</em>
<a name="221" href="#221">221</a> <em class="jxr_javadoccomment">            AUTH, SYSLOG, LPR, NEWS, UUCP, CRON, AUTHPRIV, FTP, LOCAL0,</em>
<a name="222" href="#222">222</a> <em class="jxr_javadoccomment">            LOCAL1, LOCAL2, LOCAL3, LOCAL4, LOCAL5, LOCAL6, LOCAL7.</em>
<a name="223" href="#223">223</a> <em class="jxr_javadoccomment">            The matching is case-insensitive.</em>
<a name="224" href="#224">224</a> 
<a name="225" href="#225">225</a> <em class="jxr_javadoccomment">     @since 1.1</em>
<a name="226" href="#226">226</a> <em class="jxr_javadoccomment">  */</em>
<a name="227" href="#227">227</a>   <strong class="jxr_keyword">public</strong>
<a name="228" href="#228">228</a>   <strong class="jxr_keyword">static</strong>
<a name="229" href="#229">229</a>   <strong class="jxr_keyword">int</strong> getFacility(String facilityName) {
<a name="230" href="#230">230</a>     <strong class="jxr_keyword">if</strong>(facilityName != <strong class="jxr_keyword">null</strong>) {
<a name="231" href="#231">231</a>       facilityName = facilityName.trim();
<a name="232" href="#232">232</a>     }
<a name="233" href="#233">233</a>     <strong class="jxr_keyword">if</strong>(<span class="jxr_string">"KERN"</span>.equalsIgnoreCase(facilityName)) {
<a name="234" href="#234">234</a>       <strong class="jxr_keyword">return</strong> LOG_KERN;
<a name="235" href="#235">235</a>     } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong>(<span class="jxr_string">"USER"</span>.equalsIgnoreCase(facilityName)) {
<a name="236" href="#236">236</a>       <strong class="jxr_keyword">return</strong> LOG_USER;
<a name="237" href="#237">237</a>     } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong>(<span class="jxr_string">"MAIL"</span>.equalsIgnoreCase(facilityName)) {
<a name="238" href="#238">238</a>       <strong class="jxr_keyword">return</strong> LOG_MAIL;
<a name="239" href="#239">239</a>     } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong>(<span class="jxr_string">"DAEMON"</span>.equalsIgnoreCase(facilityName)) {
<a name="240" href="#240">240</a>       <strong class="jxr_keyword">return</strong> LOG_DAEMON;
<a name="241" href="#241">241</a>     } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong>(<span class="jxr_string">"AUTH"</span>.equalsIgnoreCase(facilityName)) {
<a name="242" href="#242">242</a>       <strong class="jxr_keyword">return</strong> LOG_AUTH;
<a name="243" href="#243">243</a>     } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong>(<span class="jxr_string">"SYSLOG"</span>.equalsIgnoreCase(facilityName)) {
<a name="244" href="#244">244</a>       <strong class="jxr_keyword">return</strong> LOG_SYSLOG;
<a name="245" href="#245">245</a>     } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong>(<span class="jxr_string">"LPR"</span>.equalsIgnoreCase(facilityName)) {
<a name="246" href="#246">246</a>       <strong class="jxr_keyword">return</strong> LOG_LPR;
<a name="247" href="#247">247</a>     } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong>(<span class="jxr_string">"NEWS"</span>.equalsIgnoreCase(facilityName)) {
<a name="248" href="#248">248</a>       <strong class="jxr_keyword">return</strong> LOG_NEWS;
<a name="249" href="#249">249</a>     } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong>(<span class="jxr_string">"UUCP"</span>.equalsIgnoreCase(facilityName)) {
<a name="250" href="#250">250</a>       <strong class="jxr_keyword">return</strong> LOG_UUCP;
<a name="251" href="#251">251</a>     } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong>(<span class="jxr_string">"CRON"</span>.equalsIgnoreCase(facilityName)) {
<a name="252" href="#252">252</a>       <strong class="jxr_keyword">return</strong> LOG_CRON;
<a name="253" href="#253">253</a>     } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong>(<span class="jxr_string">"AUTHPRIV"</span>.equalsIgnoreCase(facilityName)) {
<a name="254" href="#254">254</a>       <strong class="jxr_keyword">return</strong> LOG_AUTHPRIV;
<a name="255" href="#255">255</a>     } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong>(<span class="jxr_string">"FTP"</span>.equalsIgnoreCase(facilityName)) {
<a name="256" href="#256">256</a>       <strong class="jxr_keyword">return</strong> LOG_FTP;
<a name="257" href="#257">257</a>     } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong>(<span class="jxr_string">"LOCAL0"</span>.equalsIgnoreCase(facilityName)) {
<a name="258" href="#258">258</a>       <strong class="jxr_keyword">return</strong> LOG_LOCAL0;
<a name="259" href="#259">259</a>     } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong>(<span class="jxr_string">"LOCAL1"</span>.equalsIgnoreCase(facilityName)) {
<a name="260" href="#260">260</a>       <strong class="jxr_keyword">return</strong> LOG_LOCAL1;
<a name="261" href="#261">261</a>     } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong>(<span class="jxr_string">"LOCAL2"</span>.equalsIgnoreCase(facilityName)) {
<a name="262" href="#262">262</a>       <strong class="jxr_keyword">return</strong> LOG_LOCAL2;
<a name="263" href="#263">263</a>     } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong>(<span class="jxr_string">"LOCAL3"</span>.equalsIgnoreCase(facilityName)) {
<a name="264" href="#264">264</a>       <strong class="jxr_keyword">return</strong> LOG_LOCAL3;
<a name="265" href="#265">265</a>     } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong>(<span class="jxr_string">"LOCAL4"</span>.equalsIgnoreCase(facilityName)) {
<a name="266" href="#266">266</a>       <strong class="jxr_keyword">return</strong> LOG_LOCAL4;
<a name="267" href="#267">267</a>     } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong>(<span class="jxr_string">"LOCAL5"</span>.equalsIgnoreCase(facilityName)) {
<a name="268" href="#268">268</a>       <strong class="jxr_keyword">return</strong> LOG_LOCAL5;
<a name="269" href="#269">269</a>     } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong>(<span class="jxr_string">"LOCAL6"</span>.equalsIgnoreCase(facilityName)) {
<a name="270" href="#270">270</a>       <strong class="jxr_keyword">return</strong> LOG_LOCAL6;
<a name="271" href="#271">271</a>     } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong>(<span class="jxr_string">"LOCAL7"</span>.equalsIgnoreCase(facilityName)) {
<a name="272" href="#272">272</a>       <strong class="jxr_keyword">return</strong> LOG_LOCAL7;
<a name="273" href="#273">273</a>     } <strong class="jxr_keyword">else</strong> {
<a name="274" href="#274">274</a>       <strong class="jxr_keyword">return</strong> -1;
<a name="275" href="#275">275</a>     }
<a name="276" href="#276">276</a>   }
<a name="277" href="#277">277</a> 
<a name="278" href="#278">278</a> 
<a name="279" href="#279">279</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> splitPacket(<strong class="jxr_keyword">final</strong> String header, <strong class="jxr_keyword">final</strong> String packet) {
<a name="280" href="#280">280</a>       <strong class="jxr_keyword">int</strong> byteCount = packet.getBytes().length;
<a name="281" href="#281">281</a>       <em class="jxr_comment">//</em>
<a name="282" href="#282">282</a>       <em class="jxr_comment">//   if packet is less than RFC 3164 limit</em>
<a name="283" href="#283">283</a>       <em class="jxr_comment">//      of 1024 bytes, then write it</em>
<a name="284" href="#284">284</a>       <em class="jxr_comment">//      (must allow for up 5to 5 characters in the PRI section</em>
<a name="285" href="#285">285</a>       <em class="jxr_comment">//          added by SyslogQuietWriter)</em>
<a name="286" href="#286">286</a>       <strong class="jxr_keyword">if</strong> (byteCount &lt;= 1019) {
<a name="287" href="#287">287</a>           sqw.write(packet);
<a name="288" href="#288">288</a>       } <strong class="jxr_keyword">else</strong> {
<a name="289" href="#289">289</a>           <strong class="jxr_keyword">int</strong> split = header.length() + (packet.length() - header.length())/2;
<a name="290" href="#290">290</a>           splitPacket(header, packet.substring(0, split) + <span class="jxr_string">"..."</span>);
<a name="291" href="#291">291</a>           splitPacket(header, header + <span class="jxr_string">"..."</span> + packet.substring(split));
<a name="292" href="#292">292</a>       }      
<a name="293" href="#293">293</a>   }
<a name="294" href="#294">294</a> 
<a name="295" href="#295">295</a>   <strong class="jxr_keyword">public</strong>
<a name="296" href="#296">296</a>   <strong class="jxr_keyword">void</strong> append(<a href="../../../../org/apache/log4j/spi/LoggingEvent.html">LoggingEvent</a> event) {
<a name="297" href="#297">297</a> 
<a name="298" href="#298">298</a>     <strong class="jxr_keyword">if</strong>(!isAsSevereAsThreshold(event.getLevel()))
<a name="299" href="#299">299</a>       <strong class="jxr_keyword">return</strong>;
<a name="300" href="#300">300</a> 
<a name="301" href="#301">301</a>     <em class="jxr_comment">// We must not attempt to append if sqw is null.</em>
<a name="302" href="#302">302</a>     <strong class="jxr_keyword">if</strong>(sqw == <strong class="jxr_keyword">null</strong>) {
<a name="303" href="#303">303</a>       errorHandler.error(<span class="jxr_string">"No syslog host is set for SyslogAppedender named \&quot;"</span>+
<a name="304" href="#304">304</a> 			<strong class="jxr_keyword">this</strong>.name+<span class="jxr_string">"\&quot;."</span>);
<a name="305" href="#305">305</a>       <strong class="jxr_keyword">return</strong>;
<a name="306" href="#306">306</a>     }
<a name="307" href="#307">307</a> 
<a name="308" href="#308">308</a>     <strong class="jxr_keyword">if</strong> (!layoutHeaderChecked) {
<a name="309" href="#309">309</a>         <strong class="jxr_keyword">if</strong> (layout != <strong class="jxr_keyword">null</strong> &amp;&amp; layout.getHeader() != <strong class="jxr_keyword">null</strong>) {
<a name="310" href="#310">310</a>             sendLayoutMessage(layout.getHeader());
<a name="311" href="#311">311</a>         }
<a name="312" href="#312">312</a>         layoutHeaderChecked = <strong class="jxr_keyword">true</strong>;
<a name="313" href="#313">313</a>     }
<a name="314" href="#314">314</a> 
<a name="315" href="#315">315</a>     String hdr = getPacketHeader(event.timeStamp);
<a name="316" href="#316">316</a>     String packet;
<a name="317" href="#317">317</a>     <strong class="jxr_keyword">if</strong> (layout == <strong class="jxr_keyword">null</strong>) {
<a name="318" href="#318">318</a>         packet = String.valueOf(event.getMessage());
<a name="319" href="#319">319</a>     } <strong class="jxr_keyword">else</strong> {
<a name="320" href="#320">320</a>         packet = layout.format(event);
<a name="321" href="#321">321</a>     }
<a name="322" href="#322">322</a>     <strong class="jxr_keyword">if</strong>(facilityPrinting || hdr.length() &gt; 0) {
<a name="323" href="#323">323</a>         StringBuffer buf = <strong class="jxr_keyword">new</strong> StringBuffer(hdr);
<a name="324" href="#324">324</a>         <strong class="jxr_keyword">if</strong>(facilityPrinting) {
<a name="325" href="#325">325</a>             buf.append(facilityStr);
<a name="326" href="#326">326</a>         }
<a name="327" href="#327">327</a>         buf.append(packet);
<a name="328" href="#328">328</a>         packet = buf.toString();
<a name="329" href="#329">329</a>     }
<a name="330" href="#330">330</a> 
<a name="331" href="#331">331</a>     sqw.setLevel(event.getLevel().getSyslogEquivalent());
<a name="332" href="#332">332</a>     <em class="jxr_comment">//</em>
<a name="333" href="#333">333</a>     <em class="jxr_comment">//   if message has a remote likelihood of exceeding 1024 bytes</em>
<a name="334" href="#334">334</a>     <em class="jxr_comment">//      when encoded, consider splitting message into multiple packets</em>
<a name="335" href="#335">335</a>     <strong class="jxr_keyword">if</strong> (packet.length() &gt; 256) {
<a name="336" href="#336">336</a>         splitPacket(hdr, packet);
<a name="337" href="#337">337</a>     } <strong class="jxr_keyword">else</strong> {
<a name="338" href="#338">338</a>         sqw.write(packet);
<a name="339" href="#339">339</a>     }
<a name="340" href="#340">340</a> 
<a name="341" href="#341">341</a>     <strong class="jxr_keyword">if</strong> (layout == <strong class="jxr_keyword">null</strong> || layout.ignoresThrowable()) {
<a name="342" href="#342">342</a>       String[] s = event.getThrowableStrRep();
<a name="343" href="#343">343</a>       <strong class="jxr_keyword">if</strong> (s != <strong class="jxr_keyword">null</strong>) {
<a name="344" href="#344">344</a>         <strong class="jxr_keyword">for</strong>(<strong class="jxr_keyword">int</strong> i = 0; i &lt; s.length; i++) {
<a name="345" href="#345">345</a>             <strong class="jxr_keyword">if</strong> (s[i].startsWith(<span class="jxr_string">"\t"</span>)) {
<a name="346" href="#346">346</a>                sqw.write(hdr+TAB+s[i].substring(1));
<a name="347" href="#347">347</a>             } <strong class="jxr_keyword">else</strong> {
<a name="348" href="#348">348</a>                sqw.write(hdr+s[i]);
<a name="349" href="#349">349</a>             }
<a name="350" href="#350">350</a>         }
<a name="351" href="#351">351</a>       }
<a name="352" href="#352">352</a>     }
<a name="353" href="#353">353</a>   }
<a name="354" href="#354">354</a> 
<a name="355" href="#355">355</a>   <em class="jxr_javadoccomment">/**</em>
<a name="356" href="#356">356</a> <em class="jxr_javadoccomment">     This method returns immediately as options are activated when they</em>
<a name="357" href="#357">357</a> <em class="jxr_javadoccomment">     are set.</em>
<a name="358" href="#358">358</a> <em class="jxr_javadoccomment">  */</em>
<a name="359" href="#359">359</a>   <strong class="jxr_keyword">public</strong>
<a name="360" href="#360">360</a>   <strong class="jxr_keyword">void</strong> activateOptions() {
<a name="361" href="#361">361</a>       <strong class="jxr_keyword">if</strong> (header) {
<a name="362" href="#362">362</a>         getLocalHostname();
<a name="363" href="#363">363</a>       }
<a name="364" href="#364">364</a>       <strong class="jxr_keyword">if</strong> (layout != <strong class="jxr_keyword">null</strong> &amp;&amp; layout.getHeader() != <strong class="jxr_keyword">null</strong>) {
<a name="365" href="#365">365</a>           sendLayoutMessage(layout.getHeader());
<a name="366" href="#366">366</a>       }
<a name="367" href="#367">367</a>       layoutHeaderChecked = <strong class="jxr_keyword">true</strong>;
<a name="368" href="#368">368</a>   }
<a name="369" href="#369">369</a> 
<a name="370" href="#370">370</a>   <em class="jxr_javadoccomment">/**</em>
<a name="371" href="#371">371</a> <em class="jxr_javadoccomment">     The SyslogAppender requires a layout. Hence, this method returns</em>
<a name="372" href="#372">372</a> <em class="jxr_javadoccomment">     &lt;code&gt;true&lt;/code&gt;.</em>
<a name="373" href="#373">373</a> 
<a name="374" href="#374">374</a> <em class="jxr_javadoccomment">     @since 0.8.4 */</em>
<a name="375" href="#375">375</a>   <strong class="jxr_keyword">public</strong>
<a name="376" href="#376">376</a>   <strong class="jxr_keyword">boolean</strong> requiresLayout() {
<a name="377" href="#377">377</a>     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a name="378" href="#378">378</a>   }
<a name="379" href="#379">379</a> 
<a name="380" href="#380">380</a>   <em class="jxr_javadoccomment">/**</em>
<a name="381" href="#381">381</a> <em class="jxr_javadoccomment">    The &lt;b&gt;SyslogHost&lt;/b&gt; option is the name of the the syslog host</em>
<a name="382" href="#382">382</a> <em class="jxr_javadoccomment">    where log output should go.  A non-default port can be specified by</em>
<a name="383" href="#383">383</a> <em class="jxr_javadoccomment">    appending a colon and port number to a host name,</em>
<a name="384" href="#384">384</a> <em class="jxr_javadoccomment">    an IPv4 address or an IPv6 address enclosed in square brackets.</em>
<a name="385" href="#385">385</a> 
<a name="386" href="#386">386</a> <em class="jxr_javadoccomment">    &lt;b&gt;WARNING&lt;/b&gt; If the SyslogHost is not set, then this appender</em>
<a name="387" href="#387">387</a> <em class="jxr_javadoccomment">    will fail.</em>
<a name="388" href="#388">388</a> <em class="jxr_javadoccomment">   */</em>
<a name="389" href="#389">389</a>   <strong class="jxr_keyword">public</strong>
<a name="390" href="#390">390</a>   <strong class="jxr_keyword">void</strong> setSyslogHost(<strong class="jxr_keyword">final</strong> String syslogHost) {
<a name="391" href="#391">391</a>     <strong class="jxr_keyword">this</strong>.sqw = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/helpers/SyslogQuietWriter.html">SyslogQuietWriter</a>(<strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/helpers/SyslogWriter.html">SyslogWriter</a>(syslogHost),
<a name="392" href="#392">392</a> 				     syslogFacility, errorHandler);
<a name="393" href="#393">393</a>     <em class="jxr_comment">//this.stp = new SyslogTracerPrintWriter(sqw);</em>
<a name="394" href="#394">394</a>     <strong class="jxr_keyword">this</strong>.syslogHost = syslogHost;
<a name="395" href="#395">395</a>   }
<a name="396" href="#396">396</a> 
<a name="397" href="#397">397</a>   <em class="jxr_javadoccomment">/**</em>
<a name="398" href="#398">398</a> <em class="jxr_javadoccomment">     Returns the value of the &lt;b&gt;SyslogHost&lt;/b&gt; option.</em>
<a name="399" href="#399">399</a> <em class="jxr_javadoccomment">   */</em>
<a name="400" href="#400">400</a>   <strong class="jxr_keyword">public</strong>
<a name="401" href="#401">401</a>   String getSyslogHost() {
<a name="402" href="#402">402</a>     <strong class="jxr_keyword">return</strong> syslogHost;
<a name="403" href="#403">403</a>   }
<a name="404" href="#404">404</a> 
<a name="405" href="#405">405</a>   <em class="jxr_javadoccomment">/**</em>
<a name="406" href="#406">406</a> <em class="jxr_javadoccomment">     Set the syslog facility. This is the &lt;b&gt;Facility&lt;/b&gt; option.</em>
<a name="407" href="#407">407</a> 
<a name="408" href="#408">408</a> <em class="jxr_javadoccomment">     &lt;p&gt;The &lt;code&gt;facilityName&lt;/code&gt; parameter must be one of the</em>
<a name="409" href="#409">409</a> <em class="jxr_javadoccomment">     strings KERN, USER, MAIL, DAEMON, AUTH, SYSLOG, LPR, NEWS, UUCP,</em>
<a name="410" href="#410">410</a> <em class="jxr_javadoccomment">     CRON, AUTHPRIV, FTP, LOCAL0, LOCAL1, LOCAL2, LOCAL3, LOCAL4,</em>
<a name="411" href="#411">411</a> <em class="jxr_javadoccomment">     LOCAL5, LOCAL6, LOCAL7. Case is unimportant.</em>
<a name="412" href="#412">412</a> 
<a name="413" href="#413">413</a> <em class="jxr_javadoccomment">     @since 0.8.1 */</em>
<a name="414" href="#414">414</a>   <strong class="jxr_keyword">public</strong>
<a name="415" href="#415">415</a>   <strong class="jxr_keyword">void</strong> setFacility(String facilityName) {
<a name="416" href="#416">416</a>     <strong class="jxr_keyword">if</strong>(facilityName == <strong class="jxr_keyword">null</strong>)
<a name="417" href="#417">417</a>       <strong class="jxr_keyword">return</strong>;
<a name="418" href="#418">418</a> 
<a name="419" href="#419">419</a>     syslogFacility = getFacility(facilityName);
<a name="420" href="#420">420</a>     <strong class="jxr_keyword">if</strong> (syslogFacility == -1) {
<a name="421" href="#421">421</a>       System.err.println(<span class="jxr_string">"["</span>+facilityName +
<a name="422" href="#422">422</a>                   <span class="jxr_string">"] is an unknown syslog facility. Defaulting to [USER]."</span>);
<a name="423" href="#423">423</a>       syslogFacility = LOG_USER;
<a name="424" href="#424">424</a>     }
<a name="425" href="#425">425</a> 
<a name="426" href="#426">426</a>     <strong class="jxr_keyword">this</strong>.initSyslogFacilityStr();
<a name="427" href="#427">427</a> 
<a name="428" href="#428">428</a>     <em class="jxr_comment">// If there is already a sqw, make it use the new facility.</em>
<a name="429" href="#429">429</a>     <strong class="jxr_keyword">if</strong>(sqw != <strong class="jxr_keyword">null</strong>) {
<a name="430" href="#430">430</a>       sqw.setSyslogFacility(<strong class="jxr_keyword">this</strong>.syslogFacility);
<a name="431" href="#431">431</a>     }
<a name="432" href="#432">432</a>   }
<a name="433" href="#433">433</a> 
<a name="434" href="#434">434</a>   <em class="jxr_javadoccomment">/**</em>
<a name="435" href="#435">435</a> <em class="jxr_javadoccomment">     Returns the value of the &lt;b&gt;Facility&lt;/b&gt; option.</em>
<a name="436" href="#436">436</a> <em class="jxr_javadoccomment">   */</em>
<a name="437" href="#437">437</a>   <strong class="jxr_keyword">public</strong>
<a name="438" href="#438">438</a>   String getFacility() {
<a name="439" href="#439">439</a>     <strong class="jxr_keyword">return</strong> getFacilityString(syslogFacility);
<a name="440" href="#440">440</a>   }
<a name="441" href="#441">441</a> 
<a name="442" href="#442">442</a>   <em class="jxr_javadoccomment">/**</em>
<a name="443" href="#443">443</a> <em class="jxr_javadoccomment">    If the &lt;b&gt;FacilityPrinting&lt;/b&gt; option is set to true, the printed</em>
<a name="444" href="#444">444</a> <em class="jxr_javadoccomment">    message will include the facility name of the application. It is</em>
<a name="445" href="#445">445</a> <em class="jxr_javadoccomment">    &lt;em&gt;false&lt;/em&gt; by default.</em>
<a name="446" href="#446">446</a> <em class="jxr_javadoccomment">   */</em>
<a name="447" href="#447">447</a>   <strong class="jxr_keyword">public</strong>
<a name="448" href="#448">448</a>   <strong class="jxr_keyword">void</strong> setFacilityPrinting(<strong class="jxr_keyword">boolean</strong> on) {
<a name="449" href="#449">449</a>     facilityPrinting = on;
<a name="450" href="#450">450</a>   }
<a name="451" href="#451">451</a> 
<a name="452" href="#452">452</a>   <em class="jxr_javadoccomment">/**</em>
<a name="453" href="#453">453</a> <em class="jxr_javadoccomment">     Returns the value of the &lt;b&gt;FacilityPrinting&lt;/b&gt; option.</em>
<a name="454" href="#454">454</a> <em class="jxr_javadoccomment">   */</em>
<a name="455" href="#455">455</a>   <strong class="jxr_keyword">public</strong>
<a name="456" href="#456">456</a>   <strong class="jxr_keyword">boolean</strong> getFacilityPrinting() {
<a name="457" href="#457">457</a>     <strong class="jxr_keyword">return</strong> facilityPrinting;
<a name="458" href="#458">458</a>   }
<a name="459" href="#459">459</a> 
<a name="460" href="#460">460</a>   <em class="jxr_javadoccomment">/**</em>
<a name="461" href="#461">461</a> <em class="jxr_javadoccomment">   * If true, the appender will generate the HEADER part (that is, timestamp and host name)</em>
<a name="462" href="#462">462</a> <em class="jxr_javadoccomment">   * of the syslog packet.  Default value is false for compatibility with existing behavior,</em>
<a name="463" href="#463">463</a> <em class="jxr_javadoccomment">   * however should be true unless there is a specific justification.</em>
<a name="464" href="#464">464</a> <em class="jxr_javadoccomment">   * @since 1.2.15</em>
<a name="465" href="#465">465</a> <em class="jxr_javadoccomment">  */</em>
<a name="466" href="#466">466</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">boolean</strong> getHeader() {
<a name="467" href="#467">467</a>       <strong class="jxr_keyword">return</strong> header;
<a name="468" href="#468">468</a>   }
<a name="469" href="#469">469</a> 
<a name="470" href="#470">470</a>     <em class="jxr_javadoccomment">/**</em>
<a name="471" href="#471">471</a> <em class="jxr_javadoccomment">     * Returns whether the appender produces the HEADER part (that is, timestamp and host name)</em>
<a name="472" href="#472">472</a> <em class="jxr_javadoccomment">     * of the syslog packet.</em>
<a name="473" href="#473">473</a> <em class="jxr_javadoccomment">     * @since 1.2.15</em>
<a name="474" href="#474">474</a> <em class="jxr_javadoccomment">    */</em>
<a name="475" href="#475">475</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">void</strong> setHeader(<strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">boolean</strong> val) {
<a name="476" href="#476">476</a>       header = val;
<a name="477" href="#477">477</a>   }
<a name="478" href="#478">478</a> 
<a name="479" href="#479">479</a>     <em class="jxr_javadoccomment">/**</em>
<a name="480" href="#480">480</a> <em class="jxr_javadoccomment">     * Get the host name used to identify this appender.</em>
<a name="481" href="#481">481</a> <em class="jxr_javadoccomment">     * @return local host name</em>
<a name="482" href="#482">482</a> <em class="jxr_javadoccomment">     * @since 1.2.15</em>
<a name="483" href="#483">483</a> <em class="jxr_javadoccomment">     */</em>
<a name="484" href="#484">484</a>   <strong class="jxr_keyword">private</strong> String getLocalHostname() {
<a name="485" href="#485">485</a>       <strong class="jxr_keyword">if</strong> (localHostname == <strong class="jxr_keyword">null</strong>) {
<a name="486" href="#486">486</a>           <strong class="jxr_keyword">try</strong> {
<a name="487" href="#487">487</a>             InetAddress addr = InetAddress.getLocalHost();
<a name="488" href="#488">488</a>             localHostname = addr.getHostName();
<a name="489" href="#489">489</a>           } <strong class="jxr_keyword">catch</strong> (UnknownHostException uhe) {
<a name="490" href="#490">490</a>             localHostname = <span class="jxr_string">"UNKNOWN_HOST"</span>;
<a name="491" href="#491">491</a>           }
<a name="492" href="#492">492</a>       }
<a name="493" href="#493">493</a>       <strong class="jxr_keyword">return</strong> localHostname;
<a name="494" href="#494">494</a>   }
<a name="495" href="#495">495</a> 
<a name="496" href="#496">496</a>     <em class="jxr_javadoccomment">/**</em>
<a name="497" href="#497">497</a> <em class="jxr_javadoccomment">     * Gets HEADER portion of packet.</em>
<a name="498" href="#498">498</a> <em class="jxr_javadoccomment">     * @param timeStamp number of milliseconds after the standard base time.</em>
<a name="499" href="#499">499</a> <em class="jxr_javadoccomment">     * @return HEADER portion of packet, will be zero-length string if header is false.</em>
<a name="500" href="#500">500</a> <em class="jxr_javadoccomment">     * @since 1.2.15</em>
<a name="501" href="#501">501</a> <em class="jxr_javadoccomment">     */</em>
<a name="502" href="#502">502</a>   <strong class="jxr_keyword">private</strong> String getPacketHeader(<strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">long</strong> timeStamp) {
<a name="503" href="#503">503</a>       <strong class="jxr_keyword">if</strong> (header) {
<a name="504" href="#504">504</a>         StringBuffer buf = <strong class="jxr_keyword">new</strong> StringBuffer(dateFormat.format(<strong class="jxr_keyword">new</strong> Date(timeStamp)));
<a name="505" href="#505">505</a>         <em class="jxr_comment">//  RFC 3164 says leading space, not leading zero on days 1-9</em>
<a name="506" href="#506">506</a>         <strong class="jxr_keyword">if</strong> (buf.charAt(4) == '0') {
<a name="507" href="#507">507</a>           buf.setCharAt(4, ' ');
<a name="508" href="#508">508</a>         }
<a name="509" href="#509">509</a>         buf.append(getLocalHostname());
<a name="510" href="#510">510</a>         buf.append(' ');
<a name="511" href="#511">511</a>         <strong class="jxr_keyword">return</strong> buf.toString();
<a name="512" href="#512">512</a>       }
<a name="513" href="#513">513</a>       <strong class="jxr_keyword">return</strong> <span class="jxr_string">""</span>;
<a name="514" href="#514">514</a>   }
<a name="515" href="#515">515</a> 
<a name="516" href="#516">516</a>     <em class="jxr_javadoccomment">/**</em>
<a name="517" href="#517">517</a> <em class="jxr_javadoccomment">     * Set header or footer of layout.</em>
<a name="518" href="#518">518</a> <em class="jxr_javadoccomment">     * @param msg message body, may not be null.</em>
<a name="519" href="#519">519</a> <em class="jxr_javadoccomment">     */</em>
<a name="520" href="#520">520</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> sendLayoutMessage(<strong class="jxr_keyword">final</strong> String msg) {
<a name="521" href="#521">521</a>       <strong class="jxr_keyword">if</strong> (sqw != <strong class="jxr_keyword">null</strong>) {
<a name="522" href="#522">522</a>           String packet = msg;
<a name="523" href="#523">523</a>           String hdr = getPacketHeader(<strong class="jxr_keyword">new</strong> Date().getTime());
<a name="524" href="#524">524</a>           <strong class="jxr_keyword">if</strong>(facilityPrinting || hdr.length() &gt; 0) {
<a name="525" href="#525">525</a>               StringBuffer buf = <strong class="jxr_keyword">new</strong> StringBuffer(hdr);
<a name="526" href="#526">526</a>               <strong class="jxr_keyword">if</strong>(facilityPrinting) {
<a name="527" href="#527">527</a>                   buf.append(facilityStr);
<a name="528" href="#528">528</a>               }
<a name="529" href="#529">529</a>               buf.append(msg);
<a name="530" href="#530">530</a>               packet = buf.toString();
<a name="531" href="#531">531</a>           }
<a name="532" href="#532">532</a>           sqw.setLevel(6);
<a name="533" href="#533">533</a>           sqw.write(packet);
<a name="534" href="#534">534</a>       }
<a name="535" href="#535">535</a>   }
<a name="536" href="#536">536</a> }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

