@Override
 public void sessionClosed(NextFilter nextFilter, IoSession session) throws Exception {
   log(sessionClosedLevel, "CLOSED");
   nextFilter.sessionClosed(session);
 }
 @Override
 public void sessionIdle(NextFilter nextFilter, IoSession session, IdleStatus status)
     throws Exception {
   log(sessionIdleLevel, "IDLE");
   nextFilter.sessionIdle(session, status);
 }
 @Override
 public void sessionOpened(NextFilter nextFilter, IoSession session) throws Exception {
   log(sessionOpenedLevel, "OPENED");
   nextFilter.sessionOpened(session);
 }
 @Override
 public void messageSent(NextFilter nextFilter, IoSession session, WriteRequest writeRequest)
     throws Exception {
   log(messageSentLevel, "SENT: {}", writeRequest.getOriginalRequest().getMessage());
   nextFilter.messageSent(session, writeRequest);
 }
 @Override
 public void messageReceived(NextFilter nextFilter, IoSession session, Object message)
     throws Exception {
   log(messageReceivedLevel, "RECEIVED: {}", message);
   nextFilter.messageReceived(session, message);
 }
 @Override
 public void exceptionCaught(NextFilter nextFilter, IoSession session, Throwable cause)
     throws Exception {
   log(exceptionCaughtLevel, "EXCEPTION :", cause);
   nextFilter.exceptionCaught(session, cause);
 }