<!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>ProtocolLoggingFilter xref</title>
<link type="text/css" rel="stylesheet" href="../../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../../apidocs/org/apache/mina/protocol/filter/ProtocolLoggingFilter.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: ProtocolLoggingFilter.java 165594 2005-05-02 07:21:22Z 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/protocol/filter/package-summary.html">org.apache.mina.protocol.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.IdleStatus;
<a name="25" href="#25">25</a>  <strong>import</strong> org.apache.mina.protocol.ProtocolFilter;
<a name="26" href="#26">26</a>  <strong>import</strong> org.apache.mina.protocol.ProtocolSession;
<a name="27" href="#27">27</a>  <strong>import</strong> org.apache.mina.util.SessionLog;
<a name="28" href="#28">28</a>  
<a name="29" href="#29">29</a>  <em>/**<em>*</em></em>
<a name="30" href="#30">30</a>  <em> * Logs all MINA protocol events to {@link Logger}.</em>
<a name="31" href="#31">31</a>  <em> * </em>
<a name="32" href="#32">32</a>  <em> * @author The Apache Directory Project (dev@directory.apache.org)</em>
<a name="33" href="#33">33</a>  <em> * @author Trustin Lee (trustin@apache.org)</em>
<a name="34" href="#34">34</a>  <em> * @version $Rev: 165594 $, $Date: 2005-05-02 16:21:22 +0900 (?, 02  5? 2005) $</em>
<a name="35" href="#35">35</a>  <em> * </em>
<a name="36" href="#36">36</a>  <em> * @see SessionLog</em>
<a name="37" href="#37">37</a>  <em> */</em>
<a name="38" href="#38">38</a>  <strong>public</strong> <strong>class</strong> <a href="../../../../../org/apache/mina/protocol/filter/ProtocolLoggingFilter.html">ProtocolLoggingFilter</a> implements <a href="../../../../../org/apache/mina/protocol/ProtocolFilter.html">ProtocolFilter</a>
<a name="39" href="#39">39</a>  {
<a name="40" href="#40">40</a>      <em>/**<em>*</em></em>
<a name="41" href="#41">41</a>  <em>     * Session attribute key: prefix string</em>
<a name="42" href="#42">42</a>  <em>     */</em>
<a name="43" href="#43">43</a>      <strong>public</strong> <strong>static</strong> <strong>final</strong> String PREFIX = SessionLog.PREFIX;
<a name="44" href="#44">44</a>  
<a name="45" href="#45">45</a>      <em>/**<em>*</em></em>
<a name="46" href="#46">46</a>  <em>     * Session attribute key: {@link Logger}</em>
<a name="47" href="#47">47</a>  <em>     */</em>
<a name="48" href="#48">48</a>      <strong>public</strong> <strong>static</strong> <strong>final</strong> String LOGGER = SessionLog.LOGGER;
<a name="49" href="#49">49</a>      
<a name="50" href="#50">50</a>      <strong>private</strong> Level defaultLevel = Level.INFO;
<a name="51" href="#51">51</a>      
<a name="52" href="#52">52</a>      <em>/**<em>*</em></em>
<a name="53" href="#53">53</a>  <em>     * Creates a new instance.</em>
<a name="54" href="#54">54</a>  <em>     */</em>
<a name="55" href="#55">55</a>      <strong>public</strong> <a href="../../../../../org/apache/mina/protocol/filter/ProtocolLoggingFilter.html">ProtocolLoggingFilter</a>()
<a name="56" href="#56">56</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, ProtocolSession 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, ProtocolSession 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, ProtocolSession 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, ProtocolSession 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> messageReceived( NextFilter nextFilter, ProtocolSession session, Object message )
<a name="103" href="#103">103</a>     {
<a name="104" href="#104">104</a>         SessionLog.log( defaultLevel, session, <span class="string">"RECEIVED: "</span> + message );
<a name="105" href="#105">105</a>         nextFilter.messageReceived( session, message );
<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> messageSent( NextFilter nextFilter, ProtocolSession session, Object message )
<a name="109" href="#109">109</a>     {
<a name="110" href="#110">110</a>         SessionLog.log( defaultLevel, session, <span class="string">"SENT: "</span> + message );
<a name="111" href="#111">111</a>         nextFilter.messageSent( session, message );
<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, ProtocolSession session, Object message)
<a name="115" href="#115">115</a>     {
<a name="116" href="#116">116</a>         SessionLog.log( defaultLevel, session, <span class="string">"WRITE: "</span> + message );
<a name="117" href="#117">117</a>         nextFilter.filterWrite( session, message );
<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>

