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">¶</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">¶</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">"logger"</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">"logger"</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">¶</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">¶</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">"logger"</span><span class="o">);</span> +<span class="o">...</span> +</pre></div> <div class="nav">