enable better control over logging

git-svn-id: https://svn.apache.org/repos/asf/mina/asyncweb/trunk@627633 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/server/src/main/java/org/apache/asyncweb/server/transport/mina/MinaTransport.java b/server/src/main/java/org/apache/asyncweb/server/transport/mina/MinaTransport.java
index 1aaa361..23ade9a 100644
--- a/server/src/main/java/org/apache/asyncweb/server/transport/mina/MinaTransport.java
+++ b/server/src/main/java/org/apache/asyncweb/server/transport/mina/MinaTransport.java
@@ -24,9 +24,11 @@
 import java.net.InetSocketAddress;
 import java.util.concurrent.ExecutorService;
 
+import org.apache.mina.common.IoEventType;
 import org.apache.mina.common.IoFilter;
 import org.apache.mina.filter.executor.ExecutorFilter;
 import org.apache.mina.filter.executor.OrderedThreadPoolExecutor;
+import org.apache.mina.filter.logging.LogLevel;
 import org.apache.mina.filter.logging.LoggingFilter;
 import org.apache.mina.transport.socket.SocketAcceptor;
 import org.apache.mina.transport.socket.nio.NioSocketAcceptor;
@@ -69,6 +71,8 @@
     private HttpIoHandler ioHandler;
 
     private boolean isLoggingTraffic;
+    
+    private LogLevel logLevel = LogLevel.WARN;
 
     private ServiceContainer container;
 
@@ -143,6 +147,12 @@
     {
         this.isLoggingTraffic = isLoggingTraffic;
     }
+    
+    
+    public void setLogLevel( String logLevel )
+    {
+    	this.logLevel = LogLevel.valueOf( logLevel );
+    }
 
 
     /**
@@ -187,7 +197,17 @@
             if ( isLoggingTraffic )
             {
                 LOG.debug( "Configuring traffic logging filter" );
-                IoFilter filter = new LoggingFilter();
+                LoggingFilter filter = new LoggingFilter();
+                filter.setLogLevel( IoEventType.CLOSE, logLevel );
+                filter.setLogLevel( IoEventType.EXCEPTION_CAUGHT, logLevel );
+                filter.setLogLevel( IoEventType.MESSAGE_RECEIVED, logLevel );
+                filter.setLogLevel( IoEventType.MESSAGE_SENT, logLevel );
+                filter.setLogLevel( IoEventType.SESSION_CLOSED, logLevel );
+                filter.setLogLevel( IoEventType.SESSION_CREATED, logLevel );
+                filter.setLogLevel( IoEventType.SESSION_IDLE, logLevel );
+                filter.setLogLevel( IoEventType.SESSION_OPENED, logLevel );
+                filter.setLogLevel( IoEventType.SET_TRAFFIC_MASK, logLevel );
+                filter.setLogLevel( IoEventType.WRITE, logLevel );
                 acceptor.getFilterChain().addFirst( "LoggingFilter", filter );
             }
 
diff --git a/server/src/main/java/org/apache/asyncweb/server/transport/mina/SingleHttpSessionIoHandler.java b/server/src/main/java/org/apache/asyncweb/server/transport/mina/SingleHttpSessionIoHandler.java
index 474e56e..ddcab97 100644
--- a/server/src/main/java/org/apache/asyncweb/server/transport/mina/SingleHttpSessionIoHandler.java
+++ b/server/src/main/java/org/apache/asyncweb/server/transport/mina/SingleHttpSessionIoHandler.java
@@ -105,22 +105,19 @@
 
     public void sessionCreated()
     {
-        if (LOG.isDebugEnabled())
-            LOG.debug( "Session created" );
+        LOG.info( "Session created: {}", session.getRemoteAddress() );
     }
 
 
     public void sessionOpened()
     {
-        if (LOG.isDebugEnabled())
-            LOG.debug( "Connection opened" );
+        LOG.info( "Session opened: {}", session.getRemoteAddress() );
     }
 
 
     public void sessionClosed()
     {
-        if (LOG.isDebugEnabled())
-            LOG.debug( "Connection closed" );
+        LOG.info( "Session closed: {}", session.getRemoteAddress() );
 
         if ( currentContext != null )
         {
@@ -143,8 +140,7 @@
             //        LOG.info("Read idled out while parsing request. Scheduling timeout response");
             //        handleReadFailure(currentContext, HttpResponseStatus.REQUEST_TIMEOUT, "Timeout while reading request");
             //      } else {
-            if (LOG.isDebugEnabled())
-                LOG.debug( "Session idle detected on context {} with idleType {}", currentContext, idleType );
+            LOG.debug( "Session idle detected on context {} with idleType {}", currentContext, idleType );
         	
             if ( currentContext != null )
             {
@@ -156,14 +152,12 @@
             else
             {
 	            // TODO - look further into this - it may present serious issues when dealing with HTTP/1.1
-                if (LOG.isDebugEnabled())
-                    LOG.debug( "Idled with no current request. Scheduling closure when pipeline empties" );
+                LOG.debug( "Idled with no current request. Scheduling closure when pipeline empties" );
 	            pipeline.runWhenEmpty( new Runnable()
 	            {
 	                public void run()
 	                {
-	                    if (LOG.isDebugEnabled())
-	                        LOG.debug( "Pipeline empty after idle. Closing session" );
+	                    LOG.info( "Pipeline empty after idle. Closing session: {}", session.getRemoteAddress() );
 	                    session.close();
 	                }
 	            });
@@ -189,7 +183,7 @@
                 status = HttpResponseStatus.BAD_REQUEST;
             }
 
-            LOG.warn( "Bad request:", cause );
+            LOG.warn( "Bad request: {}", session.getRemoteAddress(), cause );
 
             response = new DefaultHttpResponse();
             response.setProtocolVersion( HttpVersion.HTTP_1_1 );
@@ -205,7 +199,7 @@
             response = new DefaultHttpResponse();
             response.setProtocolVersion( HttpVersion.HTTP_1_1 );
             response.setStatus( HttpResponseStatus.INTERNAL_SERVER_ERROR );
-            LOG.error( "Unexpected exception from a service.", cause );
+            LOG.error( "Unexpected exception from a service: {}", session.getRemoteAddress(), cause );
         }
 
         if ( response != null )
@@ -243,11 +237,7 @@
      */
     private void handleReadFailure( HttpServiceContext context, HttpResponseStatus status, String message )
     {
-        if ( LOG.isInfoEnabled() )
-        {
-            LOG.info( "Failed to handle client request. Reason: " + status );
-        }
-
+        LOG.info( "Failed to handle client {} request. Reason: {}", session.getRemoteAddress(), status );
         MutableHttpResponse response = new DefaultHttpResponse();
         response.setStatusReasonPhrase( message );
         response.setStatus( status );
@@ -431,8 +421,7 @@
             WriteFuture future = session.write( this );
             if ( requiresClosure )
             {
-                if (LOG.isDebugEnabled())
-                    LOG.debug( "Added CLOSE future listener." );
+                LOG.debug( "Added CLOSE future listener." );
                 future.addListener( IoFutureListener.CLOSE );
             }
         }