<!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>SocketNode xref</title>
<link type="text/css" rel="stylesheet" href="../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../apidocs/org/apache/log4j/net/SocketNode.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> java.io.BufferedInputStream;
<a name="21" href="#21">21</a>  <strong class="jxr_keyword">import</strong> java.io.IOException;
<a name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> java.io.InterruptedIOException;
<a name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> java.io.ObjectInputStream;
<a name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> java.net.Socket;
<a name="25" href="#25">25</a>  
<a name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.Logger;
<a name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.spi.LoggerRepository;
<a name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.spi.LoggingEvent;
<a name="29" href="#29">29</a>  
<a name="30" href="#30">30</a>  <em class="jxr_comment">// Contributors:  Moses Hohman &lt;mmhohman@rainbow.uchicago.edu&gt;</em>
<a name="31" href="#31">31</a>  
<a name="32" href="#32">32</a>  <em class="jxr_javadoccomment">/**</em>
<a name="33" href="#33">33</a>  <em class="jxr_javadoccomment">   Read {@link LoggingEvent} objects sent from a remote client using</em>
<a name="34" href="#34">34</a>  <em class="jxr_javadoccomment">   Sockets (TCP). These logging events are logged according to local</em>
<a name="35" href="#35">35</a>  <em class="jxr_javadoccomment">   policy, as if they were generated locally.</em>
<a name="36" href="#36">36</a>  
<a name="37" href="#37">37</a>  <em class="jxr_javadoccomment">   &lt;p&gt;For example, the socket node might decide to log events to a</em>
<a name="38" href="#38">38</a>  <em class="jxr_javadoccomment">   local file and also resent them to a second socket node.</em>
<a name="39" href="#39">39</a>  
<a name="40" href="#40">40</a>  <em class="jxr_javadoccomment">    @author  Ceki G&amp;uuml;lc&amp;uuml;</em>
<a name="41" href="#41">41</a>  
<a name="42" href="#42">42</a>  <em class="jxr_javadoccomment">    @since 0.8.4</em>
<a name="43" href="#43">43</a>  <em class="jxr_javadoccomment">*/</em>
<a name="44" href="#44">44</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/log4j/net/SocketNode.html">SocketNode</a> implements Runnable {
<a name="45" href="#45">45</a>  
<a name="46" href="#46">46</a>    Socket socket;
<a name="47" href="#47">47</a>    <a href="../../../../org/apache/log4j/spi/LoggerRepository.html">LoggerRepository</a> hierarchy;
<a name="48" href="#48">48</a>    ObjectInputStream ois;
<a name="49" href="#49">49</a>  
<a name="50" href="#50">50</a>    <strong class="jxr_keyword">static</strong> <a href="../../../../org/apache/log4j/Logger.html">Logger</a> logger = Logger.getLogger(SocketNode.<strong class="jxr_keyword">class</strong>);
<a name="51" href="#51">51</a>  
<a name="52" href="#52">52</a>    <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/log4j/net/SocketNode.html">SocketNode</a>(Socket socket, <a href="../../../../org/apache/log4j/spi/LoggerRepository.html">LoggerRepository</a> hierarchy) {
<a name="53" href="#53">53</a>      <strong class="jxr_keyword">this</strong>.socket = socket;
<a name="54" href="#54">54</a>      <strong class="jxr_keyword">this</strong>.hierarchy = hierarchy;
<a name="55" href="#55">55</a>      <strong class="jxr_keyword">try</strong> {
<a name="56" href="#56">56</a>        ois = <strong class="jxr_keyword">new</strong> ObjectInputStream(
<a name="57" href="#57">57</a>                           <strong class="jxr_keyword">new</strong> BufferedInputStream(socket.getInputStream()));
<a name="58" href="#58">58</a>      } <strong class="jxr_keyword">catch</strong>(InterruptedIOException e) {
<a name="59" href="#59">59</a>        Thread.currentThread().interrupt();
<a name="60" href="#60">60</a>        logger.error(<span class="jxr_string">"Could not open ObjectInputStream to "</span>+socket, e);
<a name="61" href="#61">61</a>      } <strong class="jxr_keyword">catch</strong>(IOException e) {
<a name="62" href="#62">62</a>        logger.error(<span class="jxr_string">"Could not open ObjectInputStream to "</span>+socket, e);
<a name="63" href="#63">63</a>      } <strong class="jxr_keyword">catch</strong>(RuntimeException e) {
<a name="64" href="#64">64</a>        logger.error(<span class="jxr_string">"Could not open ObjectInputStream to "</span>+socket, e);
<a name="65" href="#65">65</a>      }
<a name="66" href="#66">66</a>    }
<a name="67" href="#67">67</a>  
<a name="68" href="#68">68</a>    <em class="jxr_comment">//public</em>
<a name="69" href="#69">69</a>    <em class="jxr_comment">//void finalize() {</em>
<a name="70" href="#70">70</a>    <em class="jxr_comment">//System.err.println("-------------------------Finalize called");</em>
<a name="71" href="#71">71</a>    <em class="jxr_comment">// System.err.flush();</em>
<a name="72" href="#72">72</a>    <em class="jxr_comment">//}</em>
<a name="73" href="#73">73</a>  
<a name="74" href="#74">74</a>    <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> run() {
<a name="75" href="#75">75</a>      <a href="../../../../org/apache/log4j/spi/LoggingEvent.html">LoggingEvent</a> event;
<a name="76" href="#76">76</a>      <a href="../../../../org/apache/log4j/Logger.html">Logger</a> remoteLogger;
<a name="77" href="#77">77</a>  
<a name="78" href="#78">78</a>      <strong class="jxr_keyword">try</strong> {
<a name="79" href="#79">79</a>        <strong class="jxr_keyword">if</strong> (ois != <strong class="jxr_keyword">null</strong>) {
<a name="80" href="#80">80</a>            <strong class="jxr_keyword">while</strong>(<strong class="jxr_keyword">true</strong>) {
<a name="81" href="#81">81</a>  	        <em class="jxr_comment">// read an event from the wire</em>
<a name="82" href="#82">82</a>  	        event = (LoggingEvent) ois.readObject();
<a name="83" href="#83">83</a>  	        <em class="jxr_comment">// get a logger from the hierarchy. The name of the logger is taken to be the name contained in the event.</em>
<a name="84" href="#84">84</a>  	        remoteLogger = hierarchy.getLogger(event.getLoggerName());
<a name="85" href="#85">85</a>  	        <em class="jxr_comment">//event.logger = remoteLogger;</em>
<a name="86" href="#86">86</a>  	        <em class="jxr_comment">// apply the logger-level filter</em>
<a name="87" href="#87">87</a>  	        <strong class="jxr_keyword">if</strong>(event.getLevel().isGreaterOrEqual(remoteLogger.getEffectiveLevel())) {
<a name="88" href="#88">88</a>  	        <em class="jxr_comment">// finally log the event as if was generated locally</em>
<a name="89" href="#89">89</a>  	        remoteLogger.callAppenders(event);
<a name="90" href="#90">90</a>  	      }
<a name="91" href="#91">91</a>          }
<a name="92" href="#92">92</a>        }
<a name="93" href="#93">93</a>      } <strong class="jxr_keyword">catch</strong>(java.io.EOFException e) {
<a name="94" href="#94">94</a>        logger.info(<span class="jxr_string">"Caught java.io.EOFException closing conneciton."</span>);
<a name="95" href="#95">95</a>      } <strong class="jxr_keyword">catch</strong>(java.net.SocketException e) {
<a name="96" href="#96">96</a>        logger.info(<span class="jxr_string">"Caught java.net.SocketException closing conneciton."</span>);
<a name="97" href="#97">97</a>      } <strong class="jxr_keyword">catch</strong>(InterruptedIOException e) {
<a name="98" href="#98">98</a>        Thread.currentThread().interrupt();
<a name="99" href="#99">99</a>        logger.info(<span class="jxr_string">"Caught java.io.InterruptedIOException: "</span>+e);
<a name="100" href="#100">100</a>       logger.info(<span class="jxr_string">"Closing connection."</span>);
<a name="101" href="#101">101</a>     } <strong class="jxr_keyword">catch</strong>(IOException e) {
<a name="102" href="#102">102</a>       logger.info(<span class="jxr_string">"Caught java.io.IOException: "</span>+e);
<a name="103" href="#103">103</a>       logger.info(<span class="jxr_string">"Closing connection."</span>);
<a name="104" href="#104">104</a>     } <strong class="jxr_keyword">catch</strong>(Exception e) {
<a name="105" href="#105">105</a>       logger.error(<span class="jxr_string">"Unexpected exception. Closing conneciton."</span>, e);
<a name="106" href="#106">106</a>     } <strong class="jxr_keyword">finally</strong> {
<a name="107" href="#107">107</a>       <strong class="jxr_keyword">if</strong> (ois != <strong class="jxr_keyword">null</strong>) {
<a name="108" href="#108">108</a>          <strong class="jxr_keyword">try</strong> {
<a name="109" href="#109">109</a>             ois.close();
<a name="110" href="#110">110</a>          } <strong class="jxr_keyword">catch</strong>(Exception e) {
<a name="111" href="#111">111</a>             logger.info(<span class="jxr_string">"Could not close connection."</span>, e);
<a name="112" href="#112">112</a>          }
<a name="113" href="#113">113</a>       }
<a name="114" href="#114">114</a>       <strong class="jxr_keyword">if</strong> (socket != <strong class="jxr_keyword">null</strong>) {
<a name="115" href="#115">115</a>         <strong class="jxr_keyword">try</strong> {
<a name="116" href="#116">116</a>           socket.close();
<a name="117" href="#117">117</a>         } <strong class="jxr_keyword">catch</strong>(InterruptedIOException e) {
<a name="118" href="#118">118</a>             Thread.currentThread().interrupt();
<a name="119" href="#119">119</a>         } <strong class="jxr_keyword">catch</strong>(IOException ex) {
<a name="120" href="#120">120</a>         }
<a name="121" href="#121">121</a>       }
<a name="122" href="#122">122</a>     }
<a name="123" href="#123">123</a>   }
<a name="124" href="#124">124</a> }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

