<!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>SocketServer xref</title>
<link type="text/css" rel="stylesheet" href="../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../apidocs/org/apache/log4j/net/SocketServer.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.File;
<a name="21" href="#21">21</a>  <strong class="jxr_keyword">import</strong> java.net.InetAddress;
<a name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> java.net.ServerSocket;
<a name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> java.net.Socket;
<a name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> java.util.Hashtable;
<a name="25" href="#25">25</a>  
<a name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.Hierarchy;
<a name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.Level;
<a name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.LogManager;
<a name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.Logger;
<a name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.PropertyConfigurator;
<a name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.spi.LoggerRepository;
<a name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.spi.RootLogger;
<a name="33" href="#33">33</a>  
<a name="34" href="#34">34</a>  
<a name="35" href="#35">35</a>  <em class="jxr_javadoccomment">/**</em>
<a name="36" href="#36">36</a>  <em class="jxr_javadoccomment">   A {@link SocketNode} based server that uses a different hierarchy</em>
<a name="37" href="#37">37</a>  <em class="jxr_javadoccomment">   for each client.</em>
<a name="38" href="#38">38</a>  
<a name="39" href="#39">39</a>  <em class="jxr_javadoccomment">   &lt;pre&gt;</em>
<a name="40" href="#40">40</a>  <em class="jxr_javadoccomment">     &lt;b&gt;Usage:&lt;/b&gt; java org.apache.log4j.net.SocketServer port configFile configDir</em>
<a name="41" href="#41">41</a>  
<a name="42" href="#42">42</a>  <em class="jxr_javadoccomment">     where &lt;b&gt;port&lt;/b&gt; is a part number where the server listens,</em>
<a name="43" href="#43">43</a>  <em class="jxr_javadoccomment">           &lt;b&gt;configFile&lt;/b&gt; is a configuration file fed to the {@link PropertyConfigurator} and</em>
<a name="44" href="#44">44</a>  <em class="jxr_javadoccomment">           &lt;b&gt;configDir&lt;/b&gt; is a path to a directory containing configuration files, possibly one for each client host.</em>
<a name="45" href="#45">45</a>  <em class="jxr_javadoccomment">     &lt;/pre&gt;</em>
<a name="46" href="#46">46</a>  
<a name="47" href="#47">47</a>  <em class="jxr_javadoccomment">     &lt;p&gt;The &lt;code&gt;configFile&lt;/code&gt; is used to configure the log4j</em>
<a name="48" href="#48">48</a>  <em class="jxr_javadoccomment">     default hierarchy that the &lt;code&gt;SocketServer&lt;/code&gt; will use to</em>
<a name="49" href="#49">49</a>  <em class="jxr_javadoccomment">     report on its actions.</em>
<a name="50" href="#50">50</a>  
<a name="51" href="#51">51</a>  <em class="jxr_javadoccomment">     &lt;p&gt;When a new connection is opened from a previously unknown</em>
<a name="52" href="#52">52</a>  <em class="jxr_javadoccomment">     host, say &lt;code&gt;foo.bar.net&lt;/code&gt;, then the</em>
<a name="53" href="#53">53</a>  <em class="jxr_javadoccomment">     &lt;code&gt;SocketServer&lt;/code&gt; will search for a configuration file</em>
<a name="54" href="#54">54</a>  <em class="jxr_javadoccomment">     called &lt;code&gt;foo.bar.net.lcf&lt;/code&gt; under the directory</em>
<a name="55" href="#55">55</a>  <em class="jxr_javadoccomment">     &lt;code&gt;configDir&lt;/code&gt; that was passed as the third argument. If</em>
<a name="56" href="#56">56</a>  <em class="jxr_javadoccomment">     the file can be found, then a new hierarchy is instantiated and</em>
<a name="57" href="#57">57</a>  <em class="jxr_javadoccomment">     configured using the configuration file</em>
<a name="58" href="#58">58</a>  <em class="jxr_javadoccomment">     &lt;code&gt;foo.bar.net.lcf&lt;/code&gt;. If and when the host</em>
<a name="59" href="#59">59</a>  <em class="jxr_javadoccomment">     &lt;code&gt;foo.bar.net&lt;/code&gt; opens another connection to the server,</em>
<a name="60" href="#60">60</a>  <em class="jxr_javadoccomment">     then the previously configured hierarchy is used.</em>
<a name="61" href="#61">61</a>  
<a name="62" href="#62">62</a>  <em class="jxr_javadoccomment">     &lt;p&gt;In case there is no file called &lt;code&gt;foo.bar.net.lcf&lt;/code&gt;</em>
<a name="63" href="#63">63</a>  <em class="jxr_javadoccomment">     under the directory &lt;code&gt;configDir&lt;/code&gt;, then the</em>
<a name="64" href="#64">64</a>  <em class="jxr_javadoccomment">     &lt;em&gt;generic&lt;/em&gt; hierarchy is used. The generic hierarchy is</em>
<a name="65" href="#65">65</a>  <em class="jxr_javadoccomment">     configured using a configuration file called</em>
<a name="66" href="#66">66</a>  <em class="jxr_javadoccomment">     &lt;code&gt;generic.lcf&lt;/code&gt; under the &lt;code&gt;configDir&lt;/code&gt;</em>
<a name="67" href="#67">67</a>  <em class="jxr_javadoccomment">     directory. If no such file exists, then the generic hierarchy will be</em>
<a name="68" href="#68">68</a>  <em class="jxr_javadoccomment">     identical to the log4j default hierarchy.</em>
<a name="69" href="#69">69</a>  
<a name="70" href="#70">70</a>  <em class="jxr_javadoccomment">     &lt;p&gt;Having different client hosts log using different hierarchies</em>
<a name="71" href="#71">71</a>  <em class="jxr_javadoccomment">     ensures the total independence of the clients with respect to</em>
<a name="72" href="#72">72</a>  <em class="jxr_javadoccomment">     their logging settings.</em>
<a name="73" href="#73">73</a>  
<a name="74" href="#74">74</a>  <em class="jxr_javadoccomment">     &lt;p&gt;Currently, the hierarchy that will be used for a given request</em>
<a name="75" href="#75">75</a>  <em class="jxr_javadoccomment">     depends on the IP address of the client host. For example, two</em>
<a name="76" href="#76">76</a>  <em class="jxr_javadoccomment">     separate applicatons running on the same host and logging to the</em>
<a name="77" href="#77">77</a>  <em class="jxr_javadoccomment">     same server will share the same hierarchy. This is perfectly safe</em>
<a name="78" href="#78">78</a>  <em class="jxr_javadoccomment">     except that it might not provide the right amount of independence</em>
<a name="79" href="#79">79</a>  <em class="jxr_javadoccomment">     between applications. The &lt;code&gt;SocketServer&lt;/code&gt; is intended</em>
<a name="80" href="#80">80</a>  <em class="jxr_javadoccomment">     as an example to be enhanced in order to implement more elaborate</em>
<a name="81" href="#81">81</a>  <em class="jxr_javadoccomment">     policies.</em>
<a name="82" href="#82">82</a>  
<a name="83" href="#83">83</a>  
<a name="84" href="#84">84</a>  <em class="jxr_javadoccomment">    @author  Ceki G&amp;uuml;lc&amp;uuml;</em>
<a name="85" href="#85">85</a>  
<a name="86" href="#86">86</a>  <em class="jxr_javadoccomment">    @since 1.0 */</em>
<a name="87" href="#87">87</a>  
<a name="88" href="#88">88</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/log4j/net/SocketServer.html">SocketServer</a>  {
<a name="89" href="#89">89</a>  
<a name="90" href="#90">90</a>    <strong class="jxr_keyword">static</strong> String GENERIC = <span class="jxr_string">"generic"</span>;
<a name="91" href="#91">91</a>    <strong class="jxr_keyword">static</strong> String CONFIG_FILE_EXT = <span class="jxr_string">".lcf"</span>;
<a name="92" href="#92">92</a>  
<a name="93" href="#93">93</a>    <strong class="jxr_keyword">static</strong> <a href="../../../../org/apache/log4j/Logger.html">Logger</a> cat = Logger.getLogger(SocketServer.<strong class="jxr_keyword">class</strong>);
<a name="94" href="#94">94</a>    <strong class="jxr_keyword">static</strong> <a href="../../../../org/apache/log4j/net/SocketServer.html">SocketServer</a> server;
<a name="95" href="#95">95</a>    <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">int</strong> port;
<a name="96" href="#96">96</a>  
<a name="97" href="#97">97</a>    <em class="jxr_comment">// key=inetAddress, value=hierarchy</em>
<a name="98" href="#98">98</a>    Hashtable hierarchyMap;
<a name="99" href="#99">99</a>    <a href="../../../../org/apache/log4j/spi/LoggerRepository.html">LoggerRepository</a> genericHierarchy;
<a name="100" href="#100">100</a>   File dir;
<a name="101" href="#101">101</a> 
<a name="102" href="#102">102</a>   <strong class="jxr_keyword">public</strong>
<a name="103" href="#103">103</a>   <strong class="jxr_keyword">static</strong>
<a name="104" href="#104">104</a>   <strong class="jxr_keyword">void</strong> main(String argv[]) {
<a name="105" href="#105">105</a>     <strong class="jxr_keyword">if</strong>(argv.length == 3)
<a name="106" href="#106">106</a>       init(argv[0], argv[1], argv[2]);
<a name="107" href="#107">107</a>     <strong class="jxr_keyword">else</strong>
<a name="108" href="#108">108</a>       usage(<span class="jxr_string">"Wrong number of arguments."</span>);
<a name="109" href="#109">109</a> 
<a name="110" href="#110">110</a>     <strong class="jxr_keyword">try</strong> {
<a name="111" href="#111">111</a>       cat.info(<span class="jxr_string">"Listening on port "</span> + port);
<a name="112" href="#112">112</a>       ServerSocket serverSocket = <strong class="jxr_keyword">new</strong> ServerSocket(port);
<a name="113" href="#113">113</a>       <strong class="jxr_keyword">while</strong>(<strong class="jxr_keyword">true</strong>) {
<a name="114" href="#114">114</a> 	cat.info(<span class="jxr_string">"Waiting to accept a new client."</span>);
<a name="115" href="#115">115</a> 	Socket socket = serverSocket.accept();
<a name="116" href="#116">116</a> 	InetAddress inetAddress =  socket.getInetAddress();
<a name="117" href="#117">117</a> 	cat.info(<span class="jxr_string">"Connected to client at "</span> + inetAddress);
<a name="118" href="#118">118</a> 
<a name="119" href="#119">119</a> 	LoggerRepository h = (LoggerRepository) server.hierarchyMap.get(inetAddress);
<a name="120" href="#120">120</a> 	<strong class="jxr_keyword">if</strong>(h == <strong class="jxr_keyword">null</strong>) {
<a name="121" href="#121">121</a> 	  h = server.configureHierarchy(inetAddress);
<a name="122" href="#122">122</a> 	}
<a name="123" href="#123">123</a> 
<a name="124" href="#124">124</a> 	cat.info(<span class="jxr_string">"Starting new socket node."</span>);
<a name="125" href="#125">125</a> 	<strong class="jxr_keyword">new</strong> Thread(<strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/net/SocketNode.html">SocketNode</a>(socket, h)).start();
<a name="126" href="#126">126</a>       }
<a name="127" href="#127">127</a>     }
<a name="128" href="#128">128</a>     <strong class="jxr_keyword">catch</strong>(Exception e) {
<a name="129" href="#129">129</a>       e.printStackTrace();
<a name="130" href="#130">130</a>     }
<a name="131" href="#131">131</a>   }
<a name="132" href="#132">132</a> 
<a name="133" href="#133">133</a> 
<a name="134" href="#134">134</a>   <strong class="jxr_keyword">static</strong>
<a name="135" href="#135">135</a>   <strong class="jxr_keyword">void</strong>  usage(String msg) {
<a name="136" href="#136">136</a>     System.err.println(msg);
<a name="137" href="#137">137</a>     System.err.println(
<a name="138" href="#138">138</a>       <span class="jxr_string">"Usage: java "</span> +SocketServer.<strong class="jxr_keyword">class</strong>.getName() + <span class="jxr_string">" port configFile directory"</span>);
<a name="139" href="#139">139</a>     System.exit(1);
<a name="140" href="#140">140</a>   }
<a name="141" href="#141">141</a> 
<a name="142" href="#142">142</a>   <strong class="jxr_keyword">static</strong>
<a name="143" href="#143">143</a>   <strong class="jxr_keyword">void</strong> init(String portStr, String configFile, String dirStr) {
<a name="144" href="#144">144</a>     <strong class="jxr_keyword">try</strong> {
<a name="145" href="#145">145</a>       port = Integer.parseInt(portStr);
<a name="146" href="#146">146</a>     }
<a name="147" href="#147">147</a>     <strong class="jxr_keyword">catch</strong>(java.lang.NumberFormatException e) {
<a name="148" href="#148">148</a>       e.printStackTrace();
<a name="149" href="#149">149</a>       usage(<span class="jxr_string">"Could not interpret port number ["</span>+ portStr +<span class="jxr_string">"]."</span>);
<a name="150" href="#150">150</a>     }
<a name="151" href="#151">151</a> 
<a name="152" href="#152">152</a>     PropertyConfigurator.configure(configFile);
<a name="153" href="#153">153</a> 
<a name="154" href="#154">154</a>     File dir = <strong class="jxr_keyword">new</strong> File(dirStr);
<a name="155" href="#155">155</a>     <strong class="jxr_keyword">if</strong>(!dir.isDirectory()) {
<a name="156" href="#156">156</a>       usage(<span class="jxr_string">"["</span>+dirStr+<span class="jxr_string">"] is not a directory."</span>);
<a name="157" href="#157">157</a>     }
<a name="158" href="#158">158</a>     server = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/net/SocketServer.html">SocketServer</a>(dir);
<a name="159" href="#159">159</a>   }
<a name="160" href="#160">160</a> 
<a name="161" href="#161">161</a> 
<a name="162" href="#162">162</a>   <strong class="jxr_keyword">public</strong>
<a name="163" href="#163">163</a>   <a href="../../../../org/apache/log4j/net/SocketServer.html">SocketServer</a>(File directory) {
<a name="164" href="#164">164</a>     <strong class="jxr_keyword">this</strong>.dir = directory;
<a name="165" href="#165">165</a>     hierarchyMap = <strong class="jxr_keyword">new</strong> Hashtable(11);
<a name="166" href="#166">166</a>   }
<a name="167" href="#167">167</a> 
<a name="168" href="#168">168</a>   <em class="jxr_comment">// This method assumes that there is no hiearchy for inetAddress</em>
<a name="169" href="#169">169</a>   <em class="jxr_comment">// yet. It will configure one and return it.</em>
<a name="170" href="#170">170</a>   <a href="../../../../org/apache/log4j/spi/LoggerRepository.html">LoggerRepository</a> configureHierarchy(InetAddress inetAddress) {
<a name="171" href="#171">171</a>     cat.info(<span class="jxr_string">"Locating configuration file for "</span>+inetAddress);
<a name="172" href="#172">172</a>     <em class="jxr_comment">// We assume that the toSting method of InetAddress returns is in</em>
<a name="173" href="#173">173</a>     <em class="jxr_comment">// the format hostname/d1.d2.d3.d4 e.g. torino/192.168.1.1</em>
<a name="174" href="#174">174</a>     String s = inetAddress.toString();
<a name="175" href="#175">175</a>     <strong class="jxr_keyword">int</strong> i = s.indexOf(<span class="jxr_string">"/"</span>);
<a name="176" href="#176">176</a>     <strong class="jxr_keyword">if</strong>(i == -1) {
<a name="177" href="#177">177</a>       cat.warn(<span class="jxr_string">"Could not parse the inetAddress ["</span>+inetAddress+
<a name="178" href="#178">178</a> 	       <span class="jxr_string">"]. Using default hierarchy."</span>);
<a name="179" href="#179">179</a>       <strong class="jxr_keyword">return</strong> genericHierarchy();
<a name="180" href="#180">180</a>     } <strong class="jxr_keyword">else</strong> {
<a name="181" href="#181">181</a>       String key = s.substring(0, i);
<a name="182" href="#182">182</a> 
<a name="183" href="#183">183</a>       File configFile = <strong class="jxr_keyword">new</strong> File(dir, key+CONFIG_FILE_EXT);
<a name="184" href="#184">184</a>       <strong class="jxr_keyword">if</strong>(configFile.exists()) {
<a name="185" href="#185">185</a> 	Hierarchy h = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/Hierarchy.html">Hierarchy</a>(<strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/spi/RootLogger.html">RootLogger</a>(Level.DEBUG));
<a name="186" href="#186">186</a> 	hierarchyMap.put(inetAddress, h);
<a name="187" href="#187">187</a> 
<a name="188" href="#188">188</a> 	<strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/PropertyConfigurator.html">PropertyConfigurator</a>().doConfigure(configFile.getAbsolutePath(), h);
<a name="189" href="#189">189</a> 
<a name="190" href="#190">190</a> 	<strong class="jxr_keyword">return</strong> h;
<a name="191" href="#191">191</a>       } <strong class="jxr_keyword">else</strong> {
<a name="192" href="#192">192</a> 	cat.warn(<span class="jxr_string">"Could not find config file ["</span>+configFile+<span class="jxr_string">"]."</span>);
<a name="193" href="#193">193</a> 	<strong class="jxr_keyword">return</strong> genericHierarchy();
<a name="194" href="#194">194</a>       }
<a name="195" href="#195">195</a>     }
<a name="196" href="#196">196</a>   }
<a name="197" href="#197">197</a> 
<a name="198" href="#198">198</a>   <a href="../../../../org/apache/log4j/spi/LoggerRepository.html">LoggerRepository</a>  genericHierarchy() {
<a name="199" href="#199">199</a>     <strong class="jxr_keyword">if</strong>(genericHierarchy == <strong class="jxr_keyword">null</strong>) {
<a name="200" href="#200">200</a>       File f = <strong class="jxr_keyword">new</strong> File(dir, GENERIC+CONFIG_FILE_EXT);
<a name="201" href="#201">201</a>       <strong class="jxr_keyword">if</strong>(f.exists()) {
<a name="202" href="#202">202</a> 	genericHierarchy = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/Hierarchy.html">Hierarchy</a>(<strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/spi/RootLogger.html">RootLogger</a>(Level.DEBUG));
<a name="203" href="#203">203</a> 	<strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/PropertyConfigurator.html">PropertyConfigurator</a>().doConfigure(f.getAbsolutePath(), genericHierarchy);
<a name="204" href="#204">204</a>       } <strong class="jxr_keyword">else</strong> {
<a name="205" href="#205">205</a> 	cat.warn(<span class="jxr_string">"Could not find config file ["</span>+f+
<a name="206" href="#206">206</a> 		 <span class="jxr_string">"]. Will use the default hierarchy."</span>);
<a name="207" href="#207">207</a> 	genericHierarchy = LogManager.getLoggerRepository();
<a name="208" href="#208">208</a>       }
<a name="209" href="#209">209</a>     }
<a name="210" href="#210">210</a>     <strong class="jxr_keyword">return</strong> genericHierarchy;
<a name="211" href="#211">211</a>   }
<a name="212" href="#212">212</a> }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

