<!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>IoLoggingFilter xref</title>
<link type="text/css" rel="stylesheet" href="../../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../../apidocs/org/apache/mina/io/filter/IoLoggingFilter.html">View Javadoc</a></div><pre>

<a name="1" href="#1">1</a>   <em class="comment">/*</em>
<a name="2" href="#2">2</a>   <em class="comment"> *   @(#) $Id: IoLoggingFilter.java 210062 2005-07-11 03:52:38Z trustin $</em>
<a name="3" href="#3">3</a>   <em class="comment"> *</em>
<a name="4" href="#4">4</a>   <em class="comment"> *   Copyright 2004 The Apache Software Foundation</em>
<a name="5" href="#5">5</a>   <em class="comment"> *</em>
<a name="6" href="#6">6</a>   <em class="comment"> *   Licensed under the Apache License, Version 2.0 (the "License");</em>
<a name="7" href="#7">7</a>   <em class="comment"> *   you may not use this file except in compliance with the License.</em>
<a name="8" href="#8">8</a>   <em class="comment"> *   You may obtain a copy of the License at</em>
<a name="9" href="#9">9</a>   <em class="comment"> *</em>
<a name="10" href="#10">10</a>  <em class="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="11" href="#11">11</a>  <em class="comment"> *</em>
<a name="12" href="#12">12</a>  <em class="comment"> *   Unless required by applicable law or agreed to in writing, software</em>
<a name="13" href="#13">13</a>  <em class="comment"> *   distributed under the License is distributed on an "AS IS" BASIS,</em>
<a name="14" href="#14">14</a>  <em class="comment"> *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</em>
<a name="15" href="#15">15</a>  <em class="comment"> *   See the License for the specific language governing permissions and</em>
<a name="16" href="#16">16</a>  <em class="comment"> *   limitations under the License.</em>
<a name="17" href="#17">17</a>  <em class="comment"> *</em>
<a name="18" href="#18">18</a>  <em class="comment"> */</em>
<a name="19" href="#19">19</a>  <strong>package</strong> <a href="../../../../../org/apache/mina/io/filter/package-summary.html">org.apache.mina.io.filter</a>;
<a name="20" href="#20">20</a>  
<a name="21" href="#21">21</a>  <strong>import</strong> java.util.logging.Level;
<a name="22" href="#22">22</a>  <strong>import</strong> java.util.logging.Logger;
<a name="23" href="#23">23</a>  
<a name="24" href="#24">24</a>  <strong>import</strong> org.apache.mina.common.ByteBuffer;
<a name="25" href="#25">25</a>  <strong>import</strong> org.apache.mina.common.IdleStatus;
<a name="26" href="#26">26</a>  <strong>import</strong> org.apache.mina.io.IoFilter;
<a name="27" href="#27">27</a>  <strong>import</strong> org.apache.mina.io.IoSession;
<a name="28" href="#28">28</a>  <strong>import</strong> org.apache.mina.util.SessionLog;
<a name="29" href="#29">29</a>  
<a name="30" href="#30">30</a>  <em>/**<em>*</em></em>
<a name="31" href="#31">31</a>  <em> * Logs all MINA I/O events to {@link Logger}.</em>
<a name="32" href="#32">32</a>  <em> * </em>
<a name="33" href="#33">33</a>  <em> * @author The Apache Directory Project (dev@directory.apache.org)</em>
<a name="34" href="#34">34</a>  <em> * @author Trustin Lee (trustin@apache.org)</em>
<a name="35" href="#35">35</a>  <em> * @version $Rev: 210062 $, $Date: 2005-07-11 12:52:38 +0900 $</em>
<a name="36" href="#36">36</a>  <em> * </em>
<a name="37" href="#37">37</a>  <em> * @see SessionLog</em>
<a name="38" href="#38">38</a>  <em> */</em>
<a name="39" href="#39">39</a>  <strong>public</strong> <strong>class</strong> <a href="../../../../../org/apache/mina/io/filter/IoLoggingFilter.html">IoLoggingFilter</a> implements <a href="../../../../../org/apache/mina/io/IoFilter.html">IoFilter</a>
<a name="40" href="#40">40</a>  {
<a name="41" href="#41">41</a>      <em>/**<em>*</em></em>
<a name="42" href="#42">42</a>  <em>     * Session attribute key: prefix string</em>
<a name="43" href="#43">43</a>  <em>     */</em>
<a name="44" href="#44">44</a>      <strong>public</strong> <strong>static</strong> <strong>final</strong> String PREFIX = SessionLog.PREFIX;
<a name="45" href="#45">45</a>  
<a name="46" href="#46">46</a>      <em>/**<em>*</em></em>
<a name="47" href="#47">47</a>  <em>     * Session attribute key: {@link Logger}</em>
<a name="48" href="#48">48</a>  <em>     */</em>
<a name="49" href="#49">49</a>      <strong>public</strong> <strong>static</strong> <strong>final</strong> String LOGGER = SessionLog.LOGGER;
<a name="50" href="#50">50</a>      
<a name="51" href="#51">51</a>      <strong>private</strong> Level defaultLevel = Level.INFO;
<a name="52" href="#52">52</a>      
<a name="53" href="#53">53</a>      <em>/**<em>*</em></em>
<a name="54" href="#54">54</a>  <em>     * Creates a new instance.</em>
<a name="55" href="#55">55</a>  <em>     */</em>
<a name="56" href="#56">56</a>      <strong>public</strong> <a href="../../../../../org/apache/mina/io/filter/IoLoggingFilter.html">IoLoggingFilter</a>()
<a name="57" href="#57">57</a>      {
<a name="58" href="#58">58</a>      }
<a name="59" href="#59">59</a>      
<a name="60" href="#60">60</a>      <em>/**<em>*</em></em>
<a name="61" href="#61">61</a>  <em>     * Returns the default level of log entry this filter logs. </em>
<a name="62" href="#62">62</a>  <em>     */</em>
<a name="63" href="#63">63</a>      <strong>public</strong> Level getDefaultLevel() {
<a name="64" href="#64">64</a>          <strong>return</strong> defaultLevel;
<a name="65" href="#65">65</a>      }
<a name="66" href="#66">66</a>      
<a name="67" href="#67">67</a>      <em>/**<em>*</em></em>
<a name="68" href="#68">68</a>  <em>     * Sets the default level of log entry this filter logs. </em>
<a name="69" href="#69">69</a>  <em>     */</em>
<a name="70" href="#70">70</a>      <strong>public</strong> <strong>void</strong> setDefaultLevel(Level defaultLevel) {
<a name="71" href="#71">71</a>          <strong>if</strong>( defaultLevel == <strong>null</strong> )
<a name="72" href="#72">72</a>          {
<a name="73" href="#73">73</a>              defaultLevel = Level.INFO;
<a name="74" href="#74">74</a>          }
<a name="75" href="#75">75</a>          <strong>this</strong>.defaultLevel = defaultLevel;
<a name="76" href="#76">76</a>      }
<a name="77" href="#77">77</a>      
<a name="78" href="#78">78</a>      <strong>public</strong> <strong>void</strong> sessionOpened( NextFilter nextFilter, IoSession session )
<a name="79" href="#79">79</a>      {
<a name="80" href="#80">80</a>          SessionLog.log( defaultLevel, session, <span class="string">"OPENED"</span> );
<a name="81" href="#81">81</a>          nextFilter.sessionOpened( session );
<a name="82" href="#82">82</a>      }
<a name="83" href="#83">83</a>  
<a name="84" href="#84">84</a>      <strong>public</strong> <strong>void</strong> sessionClosed( NextFilter nextFilter, IoSession session )
<a name="85" href="#85">85</a>      {
<a name="86" href="#86">86</a>          SessionLog.log( defaultLevel, session, <span class="string">"CLOSED"</span> );
<a name="87" href="#87">87</a>          nextFilter.sessionClosed( session );
<a name="88" href="#88">88</a>      }
<a name="89" href="#89">89</a>  
<a name="90" href="#90">90</a>      <strong>public</strong> <strong>void</strong> sessionIdle( NextFilter nextFilter, IoSession session, IdleStatus status )
<a name="91" href="#91">91</a>      {
<a name="92" href="#92">92</a>          SessionLog.log( defaultLevel, session, <span class="string">"IDLE: "</span> + status );
<a name="93" href="#93">93</a>          nextFilter.sessionIdle( session, status );
<a name="94" href="#94">94</a>      }
<a name="95" href="#95">95</a>  
<a name="96" href="#96">96</a>      <strong>public</strong> <strong>void</strong> exceptionCaught( NextFilter nextFilter, IoSession session, Throwable cause )
<a name="97" href="#97">97</a>      {
<a name="98" href="#98">98</a>          SessionLog.log( defaultLevel, session, <span class="string">"EXCEPTION:"</span>, cause );
<a name="99" href="#99">99</a>          nextFilter.exceptionCaught( session, cause );
<a name="100" href="#100">100</a>     }
<a name="101" href="#101">101</a> 
<a name="102" href="#102">102</a>     <strong>public</strong> <strong>void</strong> dataRead( NextFilter nextFilter, IoSession session, ByteBuffer buf)
<a name="103" href="#103">103</a>     {
<a name="104" href="#104">104</a>         SessionLog.log( defaultLevel, session, <span class="string">"READ: "</span> + buf.getHexDump() );
<a name="105" href="#105">105</a>         nextFilter.dataRead( session, buf );
<a name="106" href="#106">106</a>     }
<a name="107" href="#107">107</a> 
<a name="108" href="#108">108</a>     <strong>public</strong> <strong>void</strong> dataWritten( NextFilter nextFilter, IoSession session, Object marker)
<a name="109" href="#109">109</a>     {
<a name="110" href="#110">110</a>         SessionLog.log( defaultLevel, session, <span class="string">"WRITTEN: "</span> + marker );
<a name="111" href="#111">111</a>         nextFilter.dataWritten( session, marker );
<a name="112" href="#112">112</a>     }
<a name="113" href="#113">113</a> 
<a name="114" href="#114">114</a>     <strong>public</strong> <strong>void</strong> filterWrite( NextFilter nextFilter, IoSession session, ByteBuffer buf, Object marker)
<a name="115" href="#115">115</a>     {
<a name="116" href="#116">116</a>         SessionLog.log( defaultLevel, session, <span class="string">"WRITE: "</span> + marker + <span class="string">", "</span> + buf.getHexDump() );
<a name="117" href="#117">117</a>         nextFilter.filterWrite( session, buf, marker );
<a name="118" href="#118">118</a>     }
<a name="119" href="#119">119</a> }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

