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 );
}
}