Author: mwebb
Date: Mon Jul 23 21:15:05 2007
New Revision: 558923

URL: http://svn.apache.org/viewvc?view=rev&rev=558923
Log:
In response to JIRA 376, this class has been updated to allow for a finer 
grained logging capability, and less information is stored in each session.

Modified:
    mina/trunk/core/src/main/java/org/apache/mina/filter/LoggingFilter.java

Modified: 
mina/trunk/core/src/main/java/org/apache/mina/filter/LoggingFilter.java
URL: 
http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/filter/LoggingFilter.java?view=diff&rev=558923&r1=558922&r2=558923
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/filter/LoggingFilter.java 
(original)
+++ mina/trunk/core/src/main/java/org/apache/mina/filter/LoggingFilter.java Mon 
Jul 23 21:15:05 2007
@@ -19,371 +19,447 @@
  */
 package org.apache.mina.filter;
 
+
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Map;
+
 import org.apache.mina.common.IdleStatus;
+import org.apache.mina.common.IoEventType;
 import org.apache.mina.common.IoFilterAdapter;
-import org.apache.mina.common.IoHandler;
 import org.apache.mina.common.IoSession;
 import org.apache.mina.common.WriteRequest;
 import org.apache.mina.util.SessionLog;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+
 
 /**
- * Logs all MINA protocol events using the [EMAIL PROTECTED] SessionLog}. Each 
event will
- * be logged to its own [EMAIL PROTECTED] Logger}. The names of these loggers 
will share a 
- * common prefix. By default the name of the logger used by [EMAIL PROTECTED] 
SessionLog}
- * will be used as prefix. Use [EMAIL PROTECTED] #setLoggerNamePrefix(String)} 
to override
- * the default prefix.
- * <p>
- * For most of the events the name of the corresponding [EMAIL PROTECTED] 
IoHandler} method
- * which handles that event will be added to the prefix to form the logger 
name.
- * Here's a complete list of the logger names for each event:
- * <table>
- *   <tr><th>Event</th><th>Name of logger</th></tr>
- *   <tr><td>sessionCreated</td><td>&lt;prefix&gt;.sessionCreated</td></tr>
- *   <tr><td>sessionOpened</td><td>&lt;prefix&gt;.sessionOpened</td></tr>
- *   <tr><td>sessionClosed</td><td>&lt;prefix&gt;.sessionClosed</td></tr>
- *   <tr><td>sessionIdle</td><td>&lt;prefix&gt;.sessionIdle</td></tr>
- *   <tr><td>exceptionCaught</td><td>&lt;prefix&gt;.exceptionCaught</td></tr>
- *   <tr><td>messageReceived</td><td>&lt;prefix&gt;.messageReceived</td></tr>
- *   <tr><td>messageSent</td><td>&lt;prefix&gt;.messageSent</td></tr>
- *   <tr><td>[EMAIL PROTECTED] 
IoSession#write(Object)}</td><td>&lt;prefix&gt;.write</td></tr>
- *   <tr><td>[EMAIL PROTECTED] 
IoSession#close()}</td><td>&lt;prefix&gt;.close</td></tr>
- * </table>
- * </p>
- * <p>
- * By default all events will be logged on the INFO level. Use 
- * [EMAIL PROTECTED] 
#setDefaultLogLevel(org.apache.mina.filter.LoggingFilter.LogLevel)} to change
- * the level to one of [EMAIL PROTECTED] #DEBUG}, [EMAIL PROTECTED] #INFO}, 
[EMAIL PROTECTED] #WARN} or
- * [EMAIL PROTECTED] #ERROR}..
- * </p>
- * 
- * @author The Apache MINA Project ([EMAIL PROTECTED])
+ * Logs all MINA protocol events using the [EMAIL PROTECTED] SessionLog}.  
Each event can be 
+ * tuned to use a different level based on the user's specific requirements.  
Methods
+ * are in place that allow the user to use either the get or set method for 
each event
+ * and pass in the [EMAIL PROTECTED] IoEventType} and the [EMAIL PROTECTED] 
LogLevel}.
+ *
+ * By default, all events are logged to the [EMAIL PROTECTED] 
IoEventType.INFO} level except 
+ * [EMAIL PROTECTED] IoFilterAdapter.exceptionCaught()}, which is logged to 
[EMAIL PROTECTED] IoEventType.WARN}. 
+ *
+ * @author <a href="mailto:[EMAIL PROTECTED]">Apache Directory Project</a>
  * @version $Rev$, $Date$
- * 
- * @see SessionLog
  */
-public class LoggingFilter extends IoFilterAdapter {
-    /**
-     * Session attribute key: prefix string
-     */
-    public static final String PREFIX = SessionLog.PREFIX;
+public class LoggingFilter extends IoFilterAdapter
+{
 
     /**
-     * Session attribute key: [EMAIL PROTECTED] Logger}
+     * [EMAIL PROTECTED] LogLevel} which will not log any information
      */
-    public static final String LOGGER = SessionLog.LOGGER;
+    public static final LogLevel NONE = new LogLevel()
+    {
+
+        @Override
+        public void log( IoSession session, String message )
+        {
+        }
+
+
+        @Override
+        public void log( IoSession session, String message, Throwable cause )
+        {
+        }
+
+
+        @Override
+        public String toString()
+        {
+            return "NONE";
+        }
+    };
 
     /**
      * [EMAIL PROTECTED] LogLevel} which logs messages on the DEBUG level.
      */
-    public static final LogLevel DEBUG = new LogLevel() {
+    public static final LogLevel DEBUG = new LogLevel()
+    {
+
         @Override
-        public boolean isEnabled(Logger log) {
-            return log.isDebugEnabled();
+        public void log( IoSession session, String message )
+        {
+            SessionLog.debug( session, message );
         }
 
+
         @Override
-        public void log(Logger log, IoSession session, String message) {
-            SessionLog.debug(log, session, message);
+        public void log( IoSession session, String message, Throwable cause )
+        {
+            SessionLog.debug( session, message, cause );
         }
 
+
         @Override
-        public void log(Logger log, IoSession session, String message,
-                Throwable cause) {
-            SessionLog.debug(log, session, message, cause);
+        public String toString()
+        {
+            return "DEBUG";
         }
     };
 
     /**
      * [EMAIL PROTECTED] LogLevel} which logs messages on the INFO level.
      */
-    public static final LogLevel INFO = new LogLevel() {
+    public static final LogLevel INFO = new LogLevel()
+    {
         @Override
-        public boolean isEnabled(Logger log) {
-            return log.isInfoEnabled();
+        public void log( IoSession session, String message )
+        {
+            SessionLog.info( session, message );
         }
 
+
         @Override
-        public void log(Logger log, IoSession session, String message) {
-            SessionLog.info(log, session, message);
+        public void log( IoSession session, String message, Throwable cause )
+        {
+            SessionLog.info( session, message, cause );
         }
 
+
         @Override
-        public void log(Logger log, IoSession session, String message,
-                Throwable cause) {
-            SessionLog.info(log, session, message, cause);
+        public String toString()
+        {
+            return "INFO";
         }
     };
 
     /**
      * [EMAIL PROTECTED] LogLevel} which logs messages on the WARN level.
      */
-    public static final LogLevel WARN = new LogLevel() {
+    public static final LogLevel WARN = new LogLevel()
+    {
         @Override
-        public boolean isEnabled(Logger log) {
-            return log.isWarnEnabled();
+        public void log( IoSession session, String message )
+        {
+            SessionLog.warn( session, message );
         }
 
+
         @Override
-        public void log(Logger log, IoSession session, String message) {
-            SessionLog.warn(log, session, message);
+        public void log( IoSession session, String message, Throwable cause )
+        {
+            SessionLog.warn( session, message, cause );
         }
 
+
         @Override
-        public void log(Logger log, IoSession session, String message,
-                Throwable cause) {
-            SessionLog.warn(log, session, message, cause);
+        public String toString()
+        {
+            return "WARN";
         }
     };
 
     /**
      * [EMAIL PROTECTED] LogLevel} which logs messages on the ERROR level.
      */
-    public static final LogLevel ERROR = new LogLevel() {
+    public static final LogLevel ERROR = new LogLevel()
+    {
         @Override
-        public boolean isEnabled(Logger log) {
-            return log.isErrorEnabled();
+        public void log( IoSession session, String message )
+        {
+            SessionLog.error( session, message );
         }
 
+
         @Override
-        public void log(Logger log, IoSession session, String message) {
-            SessionLog.error(log, session, message);
+        public void log( IoSession session, String message, Throwable cause )
+        {
+            SessionLog.error( session, message, cause );
         }
 
+
         @Override
-        public void log(Logger log, IoSession session, String message,
-                Throwable cause) {
-            SessionLog.error(log, session, message, cause);
+        public String toString()
+        {
+            return "ERROR";
         }
     };
 
-    private static final String EVENT_LOGGER = LoggingFilter.class.getName()
-            + ".event";
+    private final Map<IoEventType, LogLevel> logSettings;
+
+
+    /**
+     * Default Constructor. 
+     */
+    public LoggingFilter()
+    {
+        logSettings = Collections.synchronizedMap( new HashMap<IoEventType, 
LogLevel>() );
+
+        // Exceptions will be logged to WARN as default...
+        logSettings.put( IoEventType.EXCEPTION_CAUGHT, WARN );
+
+        setLogLevel( IoEventType.MESSAGE_RECEIVED, INFO );
+        setLogLevel( IoEventType.MESSAGE_SENT, INFO );
+        setLogLevel( IoEventType.SESSION_CLOSED, INFO );
+        setLogLevel( IoEventType.SESSION_CREATED, INFO );
+        setLogLevel( IoEventType.SESSION_IDLE, INFO );
+        setLogLevel( IoEventType.SESSION_OPENED, INFO );
+    }
+
+
+    @Override
+    public void exceptionCaught( NextFilter nextFilter, IoSession session, 
Throwable cause ) throws Exception
+    {
+        logSettings.get( IoEventType.EXCEPTION_CAUGHT ).log( session, 
"EXCEPTION: ", cause );
+        nextFilter.exceptionCaught( session, cause );
+    }
 
-    private static final String SESSION_CREATED_LOGGER = EVENT_LOGGER
-            + ".sessionCreated";
 
-    private static final String SESSION_OPENED_LOGGER = EVENT_LOGGER
-            + ".sessionOpened";
+    @Override
+    public void messageReceived( NextFilter nextFilter, IoSession session, 
Object message ) throws Exception
+    {
+        logSettings.get( IoEventType.MESSAGE_RECEIVED ).log( session, 
"RECEIVED: " + message );
+        nextFilter.messageReceived( session, message );
+    }
 
-    private static final String SESSION_CLOSED_LOGGER = EVENT_LOGGER
-            + ".sessionClosed";
 
-    private static final String SESSION_IDLE_LOGGER = EVENT_LOGGER
-            + ".sessionIdle";
+    @Override
+    public void messageSent( NextFilter nextFilter, IoSession session, 
WriteRequest writeRequest ) throws Exception
+    {
+        logSettings.get( IoEventType.MESSAGE_SENT ).log( session, "SENT: " + 
writeRequest.getMessage() );
+        nextFilter.messageSent( session, writeRequest );
+    }
+
 
-    private static final String EXCEPTION_CAUGHT_LOGGER = EVENT_LOGGER
-            + ".exceptionCaught";
+    @Override
+    public void sessionClosed( NextFilter nextFilter, IoSession session ) 
throws Exception
+    {
+        logSettings.get( IoEventType.SESSION_CLOSED ).log( session, "CLOSED" );
+        nextFilter.sessionClosed( session );
+    }
 
-    private static final String MESSAGE_RECEIVED_LOGGER = EVENT_LOGGER
-            + ".messageReceived";
 
-    private static final String MESSAGE_SENT_LOGGER = EVENT_LOGGER
-            + ".messageSent";
+    @Override
+    public void sessionCreated( NextFilter nextFilter, IoSession session ) 
throws Exception
+    {
+        logSettings.get( IoEventType.SESSION_CREATED ).log( session, "CREATED" 
);
+        nextFilter.sessionCreated( session );
+    }
 
-    private static final String WRITE_LOGGER = EVENT_LOGGER + ".write";
 
-    private static final String CLOSE_LOGGER = EVENT_LOGGER + ".close";
+    @Override
+    public void sessionIdle( NextFilter nextFilter, IoSession session, 
IdleStatus status ) throws Exception
+    {
+        logSettings.get( IoEventType.SESSION_IDLE ).log( session, "IDLE: " + 
status );
+        nextFilter.sessionIdle( session, status );
+    }
 
-    private String loggerNamePrefix = null;
 
-    private LogLevel defaultLogLevel = INFO;
+    @Override
+    public void sessionOpened( NextFilter nextFilter, IoSession session ) 
throws Exception
+    {
+        logSettings.get( IoEventType.SESSION_OPENED ).log( session, "OPENED" );
+        nextFilter.sessionOpened( session );
+    }
 
-    private LogLevel exceptionCaughtLogLevel = WARN;
 
     /**
-     * Creates a new instance.
+     * Sets the [EMAIL PROTECTED] LogLevel} to be used when exceptions are 
logged.
+     * 
+     * @param logLevel
+     *         The [EMAIL PROTECTED] LogLevel} to be used when exceptions are 
logged.
      */
-    public LoggingFilter() {
+    public void setExceptionCaughtLogLevel( LogLevel logLevel )
+    {
+        setLogLevel( IoEventType.EXCEPTION_CAUGHT, logLevel );
     }
 
+
     /**
-     * Returns the prefix used for the names of the loggers used to log the 
different 
-     * events. If <code>null</code> the name of the [EMAIL PROTECTED] Logger} 
used by
-     * [EMAIL PROTECTED] SessionLog} will be used for the prefix. The default 
value is 
-     * <code>null</code>.
-     *
-     * @return the prefix or <code>null</code>.
+     * Sets the [EMAIL PROTECTED] LogLevel} to be used when message received 
events are logged.
+     * 
+     * @param logLevel
+     *         The [EMAIL PROTECTED] LogLevel} to be used when message 
received events are logged.
      */
-    public String getLoggerNamePrefix() {
-        return loggerNamePrefix;
+    public void setMessageReceivedLogLevel( LogLevel logLevel )
+    {
+        setLogLevel( IoEventType.MESSAGE_RECEIVED, logLevel );
     }
 
+
     /**
-     * Sets the prefix used for the names of the loggers used to log the 
different 
-     * events. If set to <code>null</code> the name of the [EMAIL PROTECTED] 
Logger} used by
-     * [EMAIL PROTECTED] SessionLog} will be used for the prefix.
-     *
-     * @param loggerNamePrefix the new prefix.
+     * Sets the [EMAIL PROTECTED] LogLevel} to be used when message sent 
events are logged.
+     * 
+     * @param logLevel
+     *         The [EMAIL PROTECTED] LogLevel} to be used when message sent 
events are logged.
      */
-    public void setLoggerNamePrefix(String loggerNamePrefix) {
-        this.loggerNamePrefix = loggerNamePrefix;
+    public void setMessageSentLogLevel( LogLevel logLevel )
+    {
+        setLogLevel( IoEventType.MESSAGE_SENT, logLevel );
     }
 
+
     /**
-     * Returns the current [EMAIL PROTECTED] LogLevel} which is used when this 
filter logs all 
-     * events but the <code>exceptionCaught</code> event. The default is 
-     * [EMAIL PROTECTED] #INFO}.
+     * Sets the [EMAIL PROTECTED] LogLevel} to be used when session closed 
events are logged.
      * 
-     * @return the current [EMAIL PROTECTED] LogLevel}.
-     * @see #getExceptionCaughtLogLevel()
+     * @param logLevel
+     *         The [EMAIL PROTECTED] LogLevel} to be used when session closed 
events are logged.
      */
-    public LogLevel getDefaultLogLevel() {
-        return defaultLogLevel;
+    public void setSessionClosedLogLevel( LogLevel logLevel )
+    {
+        setLogLevel( IoEventType.SESSION_CLOSED, logLevel );
     }
 
+
     /**
-     * Sets the [EMAIL PROTECTED] LogLevel} which will be used when this 
filter logs all events
-     * but the <code>exceptionCaught</code> event.
+     * Sets the [EMAIL PROTECTED] LogLevel} to be used when session created 
events are logged.
      * 
-     * @param logLevel the new [EMAIL PROTECTED] LogLevel}.
-     * @throws NullPointerException if the specified [EMAIL PROTECTED] 
LogLevel} is 
-     *                <code>null</code>. 
-     * @see 
#setExceptionCaughtLogLevel(org.apache.mina.filter.LoggingFilter.LogLevel)
+     * @param logLevel
+     *         The [EMAIL PROTECTED] LogLevel} to be used when session created 
events are logged.
      */
-    public void setDefaultLogLevel(LogLevel logLevel) {
-        if (logLevel == null) {
-            throw new NullPointerException("defaultLogLevel");
-        }
-        this.defaultLogLevel = logLevel;
+    public void setSessionCreatedLogLevel( LogLevel logLevel )
+    {
+        setLogLevel( IoEventType.SESSION_CREATED, logLevel );
     }
 
+
     /**
-     * Returns the current [EMAIL PROTECTED] LogLevel} which is used when this 
filter logs 
-     * <code>exceptionCaught</code> events. The default is [EMAIL PROTECTED] 
#INFO}.
+     * Sets the [EMAIL PROTECTED] LogLevel} to be used when session idle 
events are logged.
      * 
-     * @return the current [EMAIL PROTECTED] LogLevel}.
-     * @see #getDefaultLogLevel()
+     * @param logLevel
+     *         The [EMAIL PROTECTED] LogLevel} to be used when session idle 
events are logged.
      */
-    public LogLevel getExceptionCaughtLogLevel() {
-        return exceptionCaughtLogLevel;
+    public void setSessionIdleLogLevel( LogLevel logLevel )
+    {
+        setLogLevel( IoEventType.SESSION_IDLE, logLevel );
     }
 
+
     /**
-     * Sets the [EMAIL PROTECTED] LogLevel} which will be used when this 
filter logs 
-     * <code>exceptionCaught</code> events.
+     * Sets the [EMAIL PROTECTED] LogLevel} to be used when session opened 
events are logged.
      * 
-     * @param logLevel the new [EMAIL PROTECTED] LogLevel}.
-     * @throws NullPointerException if the specified [EMAIL PROTECTED] 
LogLevel} is 
-     *                <code>null</code>. 
-     * @see #setDefaultLogLevel(org.apache.mina.filter.LoggingFilter.LogLevel)
+     * @param logLevel
+     *         The [EMAIL PROTECTED] LogLevel} to be used when session opened 
events are logged.
      */
-    public void setExceptionCaughtLogLevel(LogLevel logLevel) {
-        if (logLevel == null) {
-            throw new NullPointerException("exceptionCaughtLogLevel");
-        }
-        this.exceptionCaughtLogLevel = logLevel;
+    public void setSessionOpenedLogLevel( LogLevel logLevel )
+    {
+        setLogLevel( IoEventType.SESSION_OPENED, logLevel );
     }
 
-    @Override
-    public void sessionCreated(NextFilter nextFilter, IoSession session) {
-        defaultLogLevel.log(getLogger(session, SESSION_CREATED_LOGGER,
-                "sessionCreated"), session, "CREATED");
-        nextFilter.sessionCreated(session);
-    }
 
-    @Override
-    public void sessionOpened(NextFilter nextFilter, IoSession session) {
-        defaultLogLevel.log(getLogger(session, SESSION_OPENED_LOGGER,
-                "sessionOpened"), session, "OPENED");
-        nextFilter.sessionOpened(session);
+    /**
+     * This method sets the log level for the suppliend [EMAIL PROTECTED] 
LogLevel}
+     * event.
+     * 
+     * @param event
+     *         The event that is to be updated with the new [EMAIL PROTECTED] 
LogLevel}
+     * @param logLevel
+     *         The new [EMAIL PROTECTED] LogLevel} to be used to log the 
specified event
+     */
+    public void setLogLevel( IoEventType event, LogLevel logLevel )
+    {
+        logSettings.put( event, logLevel );
     }
 
-    @Override
-    public void sessionClosed(NextFilter nextFilter, IoSession session) {
-        defaultLogLevel.log(getLogger(session, SESSION_CLOSED_LOGGER,
-                "sessionClosed"), session, "CLOSED");
-        nextFilter.sessionClosed(session);
+
+    /**
+     * This method returns the [EMAIL PROTECTED] LogLevel} that is used to log 
+     * exception caught events.
+     * 
+     * @return
+     *         The [EMAIL PROTECTED] LogLevel} used when logging exception 
caught events
+     */
+    public String getExceptionCaughtLogLevel()
+    {
+        return logSettings.get( IoEventType.EXCEPTION_CAUGHT ).toString();
     }
 
-    @Override
-    public void sessionIdle(NextFilter nextFilter, IoSession session,
-            IdleStatus status) {
-        Logger log = getLogger(session, SESSION_IDLE_LOGGER, "sessionIdle");
-        if (defaultLogLevel.isEnabled(log)) {
-            defaultLogLevel.log(log, session, "IDLE: " + status);
-        }
-        nextFilter.sessionIdle(session, status);
+
+    /**
+     * This method returns the [EMAIL PROTECTED] LogLevel} that is used to log 
+     * message received events.
+     * 
+     * @return
+     *         The [EMAIL PROTECTED] LogLevel} used when logging message 
received events
+     */
+    public String getMessageReceivedLogLevel()
+    {
+        return logSettings.get( IoEventType.MESSAGE_RECEIVED ).toString();
     }
 
-    @Override
-    public void exceptionCaught(NextFilter nextFilter, IoSession session,
-            Throwable cause) {
-        Logger log = getLogger(session, EXCEPTION_CAUGHT_LOGGER,
-                "exceptionCaught");
-        if (exceptionCaughtLogLevel.isEnabled(log)) {
-            exceptionCaughtLogLevel.log(log, session, "EXCEPTION:", cause);
-        }
-        nextFilter.exceptionCaught(session, cause);
+
+    /**
+     * This method returns the [EMAIL PROTECTED] LogLevel} that is used to log 
+     * message sent events.
+     * 
+     * @return
+     *         The [EMAIL PROTECTED] LogLevel} used when logging message sent 
events
+     */
+    public String getMessageSentLogLevel()
+    {
+        return logSettings.get( IoEventType.MESSAGE_SENT ).toString();
     }
 
-    @Override
-    public void messageReceived(NextFilter nextFilter, IoSession session,
-            Object message) {
-        Logger log = getLogger(session, MESSAGE_RECEIVED_LOGGER,
-                "messageReceived");
-        if (defaultLogLevel.isEnabled(log)) {
-            defaultLogLevel.log(log, session, "RECEIVED: " + message);
-        }
-        nextFilter.messageReceived(session, message);
+
+    /**
+     * This method returns the [EMAIL PROTECTED] LogLevel} that is used to log 
+     * session closed events.
+     * 
+     * @return
+     *         The [EMAIL PROTECTED] LogLevel} used when logging session 
closed events
+     */
+    public String getSessionClosedLogLevel()
+    {
+        return logSettings.get( IoEventType.SESSION_CLOSED ).toString();
     }
 
-    @Override
-    public void messageSent(NextFilter nextFilter, IoSession session,
-            WriteRequest writeRequest) {
-        Logger log = getLogger(session, MESSAGE_SENT_LOGGER, "messageSent");
-        if (defaultLogLevel.isEnabled(log)) {
-            defaultLogLevel.log(log, session, "SENT: "
-                    + writeRequest.getMessage());
-        }
-        nextFilter.messageSent(session, writeRequest);
+
+    /**
+     * This method returns the [EMAIL PROTECTED] LogLevel} that is used to log 
+     * session created events.
+     * 
+     * @return
+     *         The [EMAIL PROTECTED] LogLevel} used when logging session 
created events
+     */
+    public String getSessionCreatedLogLevel()
+    {
+        return logSettings.get( IoEventType.SESSION_CREATED ).toString();
     }
 
-    @Override
-    public void filterWrite(NextFilter nextFilter, IoSession session,
-            WriteRequest writeRequest) {
-        Logger log = getLogger(session, WRITE_LOGGER, "write");
-        if (defaultLogLevel.isEnabled(log)) {
-            defaultLogLevel.log(log, session, "WRITE: "
-                    + writeRequest.getMessage());
-        }
-        nextFilter.filterWrite(session, writeRequest);
+
+    /**
+     * This method returns the [EMAIL PROTECTED] LogLevel} that is used to log 
+     * session idle events.
+     * 
+     * @return
+     *         The [EMAIL PROTECTED] LogLevel} used when logging session idle 
events
+     */
+    public String getSessionIdleLogLevel()
+    {
+        return logSettings.get( IoEventType.SESSION_IDLE ).toString();
     }
 
-    @Override
-    public void filterClose(NextFilter nextFilter, IoSession session)
-            throws Exception {
-        defaultLogLevel.log(getLogger(session, CLOSE_LOGGER, "close"), session,
-                "CLOSE");
-        nextFilter.filterClose(session);
-    }
-
-    private Logger getLogger(IoSession session, String attribute, String 
event) {
-        Logger log = (Logger) session.getAttribute(attribute);
-        if (log == null) {
-            String prefix = loggerNamePrefix;
-            if (prefix == null) {
-                prefix = SessionLog.getLogger(session).getName();
-            }
-            log = LoggerFactory.getLogger(prefix + "." + event);
-            session.setAttribute(attribute, log);
-        }
-        return log;
+
+    /**
+     * This method returns the [EMAIL PROTECTED] LogLevel} that is used to log 
+     * session opened events.
+     * 
+     * @return
+     *         The [EMAIL PROTECTED] LogLevel} used when logging session 
opened events
+     */
+    public String getSessionOpenedLogLevel()
+    {
+        return logSettings.get( IoEventType.SESSION_OPENED ).toString();
     }
 
     /**
      * Defines a logging level.
      */
-    public static abstract class LogLevel {
-        LogLevel() {
+    public static abstract class LogLevel
+    {
+        LogLevel()
+        {
         }
 
-        public abstract boolean isEnabled(Logger log);
 
-        public abstract void log(Logger log, IoSession session, String 
message);
+        public abstract void log( IoSession session, String message );
+
+
+        public abstract void log( IoSession session, String message, Throwable 
cause );
+
 
-        public abstract void log(Logger log, IoSession session, String message,
-                Throwable cause);
+        public abstract String toString();
     }
 }


Reply via email to