<!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>SyslogWriter xref</title>
<link type="text/css" rel="stylesheet" href="../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../apidocs/org/apache/log4j/helpers/SyslogWriter.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.helpers;
<a name="19" href="#19">19</a>  
<a name="20" href="#20">20</a>  
<a name="21" href="#21">21</a>  <strong class="jxr_keyword">import</strong> java.io.Writer;
<a name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> java.net.DatagramSocket;
<a name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> java.net.InetAddress;
<a name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> java.net.DatagramPacket;
<a name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> java.net.UnknownHostException;
<a name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> java.net.SocketException;
<a name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> java.io.IOException;
<a name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> java.net.URL;
<a name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> java.net.MalformedURLException;
<a name="30" href="#30">30</a>  
<a name="31" href="#31">31</a>  <em class="jxr_javadoccomment">/**</em>
<a name="32" href="#32">32</a>  <em class="jxr_javadoccomment">   SyslogWriter is a wrapper around the java.net.DatagramSocket class</em>
<a name="33" href="#33">33</a>  <em class="jxr_javadoccomment">   so that it behaves like a java.io.Writer.</em>
<a name="34" href="#34">34</a>  
<a name="35" href="#35">35</a>  <em class="jxr_javadoccomment">   @since 0.7.3</em>
<a name="36" href="#36">36</a>  <em class="jxr_javadoccomment">*/</em>
<a name="37" href="#37">37</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/log4j/helpers/SyslogWriter.html">SyslogWriter</a> <strong class="jxr_keyword">extends</strong> Writer {
<a name="38" href="#38">38</a>  
<a name="39" href="#39">39</a>    <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> SYSLOG_PORT = 514;
<a name="40" href="#40">40</a>    <em class="jxr_javadoccomment">/**</em>
<a name="41" href="#41">41</a>  <em class="jxr_javadoccomment">   *  Host string from last constructed SyslogWriter.</em>
<a name="42" href="#42">42</a>  <em class="jxr_javadoccomment">   *  @deprecated</em>
<a name="43" href="#43">43</a>  <em class="jxr_javadoccomment">   */</em>
<a name="44" href="#44">44</a>    <strong class="jxr_keyword">static</strong> String syslogHost;
<a name="45" href="#45">45</a>    
<a name="46" href="#46">46</a>    <strong class="jxr_keyword">private</strong> InetAddress address;
<a name="47" href="#47">47</a>    <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> port;
<a name="48" href="#48">48</a>    <strong class="jxr_keyword">private</strong> DatagramSocket ds;
<a name="49" href="#49">49</a>  
<a name="50" href="#50">50</a>    <em class="jxr_javadoccomment">/**</em>
<a name="51" href="#51">51</a>  <em class="jxr_javadoccomment">   *  Constructs a new instance of SyslogWriter.</em>
<a name="52" href="#52">52</a>  <em class="jxr_javadoccomment">   *  @param syslogHost host name, may not be null.  A port</em>
<a name="53" href="#53">53</a>  <em class="jxr_javadoccomment">   *  may be specified by following the name or IPv4 literal address with</em>
<a name="54" href="#54">54</a>  <em class="jxr_javadoccomment">   *  a colon and a decimal port number.  To specify a port with an IPv6</em>
<a name="55" href="#55">55</a>  <em class="jxr_javadoccomment">   *  address, enclose the IPv6 address in square brackets before appending</em>
<a name="56" href="#56">56</a>  <em class="jxr_javadoccomment">   *  the colon and decimal port number.</em>
<a name="57" href="#57">57</a>  <em class="jxr_javadoccomment">   */</em>
<a name="58" href="#58">58</a>    <strong class="jxr_keyword">public</strong>
<a name="59" href="#59">59</a>    <a href="../../../../org/apache/log4j/helpers/SyslogWriter.html">SyslogWriter</a>(<strong class="jxr_keyword">final</strong> String syslogHost) {
<a name="60" href="#60">60</a>      SyslogWriter.syslogHost = syslogHost;
<a name="61" href="#61">61</a>      <strong class="jxr_keyword">if</strong> (syslogHost == <strong class="jxr_keyword">null</strong>) {
<a name="62" href="#62">62</a>          <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> NullPointerException(<span class="jxr_string">"syslogHost"</span>);
<a name="63" href="#63">63</a>      }
<a name="64" href="#64">64</a>      
<a name="65" href="#65">65</a>      String host = syslogHost;
<a name="66" href="#66">66</a>      <strong class="jxr_keyword">int</strong> urlPort = -1;
<a name="67" href="#67">67</a>      
<a name="68" href="#68">68</a>      <em class="jxr_comment">//</em>
<a name="69" href="#69">69</a>      <em class="jxr_comment">//  If not an unbracketed IPv6 address then</em>
<a name="70" href="#70">70</a>      <em class="jxr_comment">//      parse as a URL</em>
<a name="71" href="#71">71</a>      <em class="jxr_comment">//</em>
<a name="72" href="#72">72</a>      <strong class="jxr_keyword">if</strong> (host.indexOf(<span class="jxr_string">"["</span>) != -1 || host.indexOf(':') == host.lastIndexOf(':')) {
<a name="73" href="#73">73</a>          <strong class="jxr_keyword">try</strong> {
<a name="74" href="#74">74</a>              URL url = <strong class="jxr_keyword">new</strong> URL(<span class="jxr_string">"http://"</span> + host);
<a name="75" href="#75">75</a>              <strong class="jxr_keyword">if</strong> (url.getHost() != <strong class="jxr_keyword">null</strong>) {
<a name="76" href="#76">76</a>                  host = url.getHost();
<a name="77" href="#77">77</a>                  <em class="jxr_comment">//   if host is a IPv6 literal, strip off the brackets</em>
<a name="78" href="#78">78</a>                  <strong class="jxr_keyword">if</strong>(host.startsWith(<span class="jxr_string">"["</span>) &amp;&amp; host.charAt(host.length() - 1) == ']') {
<a name="79" href="#79">79</a>                      host = host.substring(1, host.length() - 1);
<a name="80" href="#80">80</a>                  }
<a name="81" href="#81">81</a>                  urlPort = url.getPort();
<a name="82" href="#82">82</a>              }
<a name="83" href="#83">83</a>          } <strong class="jxr_keyword">catch</strong>(MalformedURLException e) {
<a name="84" href="#84">84</a>        		LogLog.error(<span class="jxr_string">"Malformed URL: will attempt to interpret as InetAddress."</span>, e);
<a name="85" href="#85">85</a>          }
<a name="86" href="#86">86</a>      }
<a name="87" href="#87">87</a>      
<a name="88" href="#88">88</a>      <strong class="jxr_keyword">if</strong> (urlPort == -1) {
<a name="89" href="#89">89</a>          urlPort = SYSLOG_PORT;
<a name="90" href="#90">90</a>      }
<a name="91" href="#91">91</a>      port = urlPort;
<a name="92" href="#92">92</a>  
<a name="93" href="#93">93</a>      <strong class="jxr_keyword">try</strong> {      
<a name="94" href="#94">94</a>        <strong class="jxr_keyword">this</strong>.address = InetAddress.getByName(host);
<a name="95" href="#95">95</a>      }
<a name="96" href="#96">96</a>      <strong class="jxr_keyword">catch</strong> (UnknownHostException e) {
<a name="97" href="#97">97</a>        LogLog.error(<span class="jxr_string">"Could not find "</span> + host +
<a name="98" href="#98">98</a>  			 <span class="jxr_string">". All logging will FAIL."</span>, e);
<a name="99" href="#99">99</a>      }
<a name="100" href="#100">100</a> 
<a name="101" href="#101">101</a>     <strong class="jxr_keyword">try</strong> {
<a name="102" href="#102">102</a>       <strong class="jxr_keyword">this</strong>.ds = <strong class="jxr_keyword">new</strong> DatagramSocket();
<a name="103" href="#103">103</a>     }
<a name="104" href="#104">104</a>     <strong class="jxr_keyword">catch</strong> (SocketException e) {
<a name="105" href="#105">105</a>       e.printStackTrace();
<a name="106" href="#106">106</a>       LogLog.error(<span class="jxr_string">"Could not instantiate DatagramSocket to "</span> + host +
<a name="107" href="#107">107</a> 			 <span class="jxr_string">". All logging will FAIL."</span>, e);
<a name="108" href="#108">108</a>     }
<a name="109" href="#109">109</a>     
<a name="110" href="#110">110</a>   }
<a name="111" href="#111">111</a> 
<a name="112" href="#112">112</a> 
<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> write(<strong class="jxr_keyword">char</strong>[] buf, <strong class="jxr_keyword">int</strong> off, <strong class="jxr_keyword">int</strong> len) <strong class="jxr_keyword">throws</strong> IOException {
<a name="115" href="#115">115</a>     <strong class="jxr_keyword">this</strong>.write(<strong class="jxr_keyword">new</strong> String(buf, off, len));
<a name="116" href="#116">116</a>   }
<a name="117" href="#117">117</a>   
<a name="118" href="#118">118</a>   <strong class="jxr_keyword">public</strong>
<a name="119" href="#119">119</a>   <strong class="jxr_keyword">void</strong> write(<strong class="jxr_keyword">final</strong> String string) <strong class="jxr_keyword">throws</strong> IOException {
<a name="120" href="#120">120</a> 
<a name="121" href="#121">121</a>     <strong class="jxr_keyword">if</strong>(<strong class="jxr_keyword">this</strong>.ds != <strong class="jxr_keyword">null</strong> &amp;&amp; <strong class="jxr_keyword">this</strong>.address != <strong class="jxr_keyword">null</strong>) {
<a name="122" href="#122">122</a>         byte[] bytes = string.getBytes();
<a name="123" href="#123">123</a>         <em class="jxr_comment">//</em>
<a name="124" href="#124">124</a>         <em class="jxr_comment">//  syslog packets must be less than 1024 bytes</em>
<a name="125" href="#125">125</a>         <em class="jxr_comment">//</em>
<a name="126" href="#126">126</a>         <strong class="jxr_keyword">int</strong> bytesLength = bytes.length;
<a name="127" href="#127">127</a>         <strong class="jxr_keyword">if</strong> (bytesLength &gt;= 1024) {
<a name="128" href="#128">128</a>             bytesLength = 1024;
<a name="129" href="#129">129</a>         }
<a name="130" href="#130">130</a>         DatagramPacket packet = <strong class="jxr_keyword">new</strong> DatagramPacket(bytes, bytesLength,
<a name="131" href="#131">131</a>                                address, port);
<a name="132" href="#132">132</a>         ds.send(packet);
<a name="133" href="#133">133</a>     }
<a name="134" href="#134">134</a>     
<a name="135" href="#135">135</a>   }
<a name="136" href="#136">136</a> 
<a name="137" href="#137">137</a>   <strong class="jxr_keyword">public</strong>
<a name="138" href="#138">138</a>   <strong class="jxr_keyword">void</strong> flush() {}
<a name="139" href="#139">139</a> 
<a name="140" href="#140">140</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> close() {
<a name="141" href="#141">141</a>       <strong class="jxr_keyword">if</strong> (ds != <strong class="jxr_keyword">null</strong>) {
<a name="142" href="#142">142</a>           ds.close();
<a name="143" href="#143">143</a>       }
<a name="144" href="#144">144</a>   }
<a name="145" href="#145">145</a> }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

