<!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 165603 2005-05-02 08:09:48Z 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: 165603 $, $Date: 2005-05-02 17:09:48 +0900 (?, 02  5? 2005) $</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>

