Author: buildbot
Date: Thu Apr  4 15:44:44 2019
New Revision: 1043170

Log:
Staging update by buildbot for mina

Modified:
    websites/staging/mina/trunk/content/   (props changed)
    
websites/staging/mina/trunk/content/mina-project/userguide/ch5-filters/ch5.9-logging-filter.html

Propchange: websites/staging/mina/trunk/content/
------------------------------------------------------------------------------
--- cms:source-revision (original)
+++ cms:source-revision Thu Apr  4 15:44:44 2019
@@ -1 +1 @@
-1856924
+1856949

Modified: 
websites/staging/mina/trunk/content/mina-project/userguide/ch5-filters/ch5.9-logging-filter.html
==============================================================================
--- 
websites/staging/mina/trunk/content/mina-project/userguide/ch5-filters/ch5.9-logging-filter.html
 (original)
+++ 
websites/staging/mina/trunk/content/mina-project/userguide/ch5-filters/ch5.9-logging-filter.html
 Thu Apr  4 15:44:44 2019
@@ -186,7 +186,50 @@ h2:hover > .headerlink, h3:hover > .head
 }
 h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, 
h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, 
dt:hover > .elementid-permalink { visibility: visible }</style>
 <h1 id="59-logging-filter">5.9 - Logging Filter<a class="headerlink" 
href="#59-logging-filter" title="Permanent link">&para;</a></h1>
-<p>TBD...</p>
+<p>The <em>Logging</em> filter allows an application to logs 
<strong>MINA</strong> protocol events while they are transiting on the filters 
chain. It can be added dynamically (ie, a session may add a filter whenever it 
wants).</p>
+<p>The tracked events are :
+<em> <em>exceptionCaught</em></em> <em>messageReceived</em>
+<em> <em>messageSent</em></em> <em>sessionClosed</em>
+<em> <em>sessionCreated</em></em> <em>sessionIdle</em>
+* <em>sessionOpened</em></p>
+<p>The <em>event</em>, <em>filterClose</em>, <em>filterWrite</em> and 
<em>inputClosed</em> events are not tracked.</p>
+<h2 id="adding-the-filter">Adding the filter<a class="headerlink" 
href="#adding-the-filter" title="Permanent link">&para;</a></h2>
+<p>This can be done once and for each session, while creating the 
<em>IoFilterChainBuilder</em> instance :</p>
+<div class="codehilite"><pre><span class="o">...</span>
+<span class="n">NioSocketAcceptor</span> <span class="n">acceptor</span> <span 
class="o">=</span> <span class="k">new</span> <span 
class="n">NioSocketAcceptor</span><span class="o">();</span>
+<span class="n">DefaultIoFilterChainBuilder</span> <span 
class="n">builderChain</span> <span class="o">=</span> <span 
class="n">acceptor</span><span class="o">.</span><span 
class="na">getFilterChain</span><span class="o">();</span>
+<span class="n">builderChain</span><span class="o">.</span><span 
class="na">addLast</span><span class="o">(</span><span 
class="s">&quot;logger&quot;</span><span class="o">,</span> <span 
class="k">new</span> <span class="n">LoggingFilter</span><span 
class="o">());</span>
+<span class="o">...</span>
+</pre></div>
+
+
+<p>or it can be added dynamically, in a given session:</p>
+<div class="codehilite"><pre><span class="o">...</span>
+<span class="n">session</span><span class="o">.</span><span 
class="na">getFilterChain</span><span class="o">().</span><span 
class="na">addLast</span><span class="o">(</span><span 
class="s">&quot;logger&quot;</span><span class="o">,</span> <span 
class="k">new</span> <span class="n">LoggingFilter</span><span 
class="o">());</span>
+<span class="o">...</span>
+</pre></div>
+
+
+<p>(here, the filter is added at the end of the filter's chain, but it can 
added at the beginning, using <em>addFirst</em>, or before or after a given 
filter, with <em>addBefore</em> or <em>addAfter</em>)</p>
+<h2 id="configuring-the-filter">Configuring the filter<a class="headerlink" 
href="#configuring-the-filter" title="Permanent link">&para;</a></h2>
+<p>Each event can be configured individually. For instance, to log the 
<em>messageReceived</em> event in <em>DEBUG</em> mode, simply add this code in  
your <em>IoHandler</em> implementation:</p>
+<div class="codehilite"><pre><span class="o">...</span>
+<span class="n">LoggingFilter</span> <span class="n">loggingFilter</span> 
<span class="o">=</span> <span class="o">(</span><span 
class="n">LoggingFilter</span><span class="o">)</span><span 
class="n">session</span><span class="o">.</span><span 
class="na">getFilterChain</span><span class="o">().</span><span 
class="na">get</span><span class="o">(</span> <span 
class="n">LoggingFilter</span><span class="o">.</span><span 
class="na">class</span> <span class="o">);</span>
+
+<span class="k">if</span> <span class="o">(</span><span 
class="n">logginFilter</span> <span class="o">!=</span> <span 
class="kc">null</span><span class="o">)</span> <span class="o">{</span>
+    <span class="n">loggingFilter</span><span class="o">.</span><span 
class="na">setMessageReceivedLogLevel</span><span class="o">(</span> <span 
class="n">LogLevel</span><span class="o">.</span><span 
class="na">DEBUG</span><span class="o">);</span>
+<span class="o">}</span>
+<span class="o">...</span>
+</pre></div>
+
+
+<p>This is per session, and it's dynamic.</p>
+<h2 id="removing-the-filter">Removing the filter<a class="headerlink" 
href="#removing-the-filter" title="Permanent link">&para;</a></h2>
+<p>It's always possible to remove the filter for a given session :</p>
+<div class="codehilite"><pre><span class="o">...</span>
+<span class="n">session</span><span class="o">.</span><span 
class="na">getFilterChain</span><span class="o">().</span><span 
class="na">remove</span><span class="o">(</span><span 
class="s">&quot;logger&quot;</span><span class="o">);</span>
+<span class="o">...</span>
+</pre></div>
 
 
     <div class="nav">


Reply via email to