You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by tr...@apache.org on 2007/11/26 09:03:58 UTC

svn commit: r598159 - in /mina/trunk/core/src/main/java/org/apache/mina/filter/logging: LogLevel.java LoggingFilter.java

Author: trustin
Date: Mon Nov 26 00:03:57 2007
New Revision: 598159

URL: http://svn.apache.org/viewvc?rev=598159&view=rev
Log:
* Extracted LoggingFilter.LogLevel to a new top level class.
* Changed LogLevel to enum (with subtle interface change)

Added:
    mina/trunk/core/src/main/java/org/apache/mina/filter/logging/LogLevel.java   (with props)
Modified:
    mina/trunk/core/src/main/java/org/apache/mina/filter/logging/LoggingFilter.java

Added: mina/trunk/core/src/main/java/org/apache/mina/filter/logging/LogLevel.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/filter/logging/LogLevel.java?rev=598159&view=auto
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/filter/logging/LogLevel.java (added)
+++ mina/trunk/core/src/main/java/org/apache/mina/filter/logging/LogLevel.java Mon Nov 26 00:03:57 2007
@@ -0,0 +1,130 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ *
+ */
+package org.apache.mina.filter.logging;
+
+import org.apache.mina.common.IoSession;
+import org.apache.mina.common.IoSessionLogger;
+import org.slf4j.Logger;
+
+/**
+ * Defines a logging level.
+ * 
+ * @author The Apache MINA Project (dev@mina.apache.org)
+ * @version $Rev$, $Date$
+ * 
+ * @see LoggingFilter
+ */
+public enum LogLevel {
+
+    /**
+     * {@link LogLevel} which will not log any information
+     */
+    NONE(new LogLevelLogger() {
+        public void log(Logger logger, String message) {
+        }
+
+        public void log(Logger logger, String message, Throwable cause) {
+        }
+    }),
+
+    /**
+     * {@link LogLevel} which logs messages on the TRACE level.
+     */
+    TRACE(new LogLevelLogger() {
+        public void log(Logger logger, String message) {
+            logger.trace(message);
+        }
+
+        public void log(Logger logger, String message, Throwable cause) {
+            logger.trace(message, cause);
+        }
+    }),
+
+    /**
+     * {@link LogLevel} which logs messages on the DEBUG level.
+     */
+    DEBUG(new LogLevelLogger() {
+        public void log(Logger logger, String message) {
+            logger.debug(message);
+        }
+
+        public void log(Logger logger, String message, Throwable cause) {
+            logger.debug(message, cause);
+        }
+    }),
+
+    /**
+     * {@link LogLevel} which logs messages on the INFO level.
+     */
+    INFO(new LogLevelLogger() {
+        public void log(Logger logger, String message) {
+            logger.info(message);
+        }
+
+        public void log(Logger logger, String message, Throwable cause) {
+            logger.info(message, cause);
+        }
+    }),
+
+    /**
+     * {@link LogLevel} which logs messages on the WARN level.
+     */
+    WARN(new LogLevelLogger() {
+        public void log(Logger logger, String message) {
+            logger.warn(message);
+        }
+
+        public void log(Logger logger, String message, Throwable cause) {
+            logger.warn(message, cause);
+        }
+    }),
+
+    /**
+     * {@link LogLevel} which logs messages on the ERROR level.
+     */
+    ERROR(new LogLevelLogger() {
+        public void log(Logger logger, String message) {
+            logger.error(message);
+        }
+
+        public void log(Logger logger, String message, Throwable cause) {
+            logger.error(message, cause);
+        }
+    });
+          
+    private final LogLevelLogger logger;
+    
+    private LogLevel(LogLevelLogger logger) {
+        this.logger = logger;
+    }
+    
+    void log(IoSession session, String name, String message) {
+        this.logger.log(IoSessionLogger.getLogger(session, name), message);
+    }
+    
+    void log(IoSession session, String name, String message, Throwable cause) {
+        this.logger.log(IoSessionLogger.getLogger(session, name), message, cause);
+    }
+    
+    private interface LogLevelLogger {
+        void log(Logger logger, String message);
+        void log(Logger logger, String message, Throwable cause);
+    }
+}
\ No newline at end of file

Propchange: mina/trunk/core/src/main/java/org/apache/mina/filter/logging/LogLevel.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: mina/trunk/core/src/main/java/org/apache/mina/filter/logging/LogLevel.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: mina/trunk/core/src/main/java/org/apache/mina/filter/logging/LoggingFilter.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/filter/logging/LoggingFilter.java?rev=598159&r1=598158&r2=598159&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/filter/logging/LoggingFilter.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/filter/logging/LoggingFilter.java Mon Nov 26 00:03:57 2007
@@ -29,8 +29,6 @@
 import org.apache.mina.common.IoSessionLogger;
 import org.apache.mina.common.WriteRequest;
 import org.apache.mina.util.CopyOnWriteMap;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 /**
  * Logs all MINA protocol events using the {@link IoSessionLogger}.  Each event can be
@@ -38,142 +36,23 @@
  * are in place that allow the user to use either the get or set method for each event
  * and pass in the {@link IoEventType} and the {@link LogLevel}.
  *
- * By default, all events are logged to the {@link #INFO} level except
+ * By default, all events are logged to the {@link LogLevel#INFO} level except
  * {@link IoFilterAdapter#exceptionCaught(IoFilter.NextFilter, IoSession, Throwable)},
- * which is logged to {@link #WARN}.
+ * which is logged to {@link LogLevel#WARN}.
  *
  * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
  * @version $Rev$, $Date$
  */
 public class LoggingFilter extends IoFilterAdapter {
 
-    /**
-     * {@link LogLevel} which will not log any information
-     */
-    public static final LogLevel NONE = new LogLevel() {
-        @Override
-        void log(IoSession session, Logger logger, String message) {
-        }
-
-        @Override
-        void log(IoSession session, Logger logger, String message, Throwable cause) {
-        }
-
-        @Override
-        public String toString() {
-            return "NONE";
-        }
-    };
-
-    /**
-     * {@link LogLevel} which logs messages on the TRACE level.
-     */
-    public static final LogLevel TRACE = new LogLevel() {
-        @Override
-        void log(IoSession session, Logger logger, String message) {
-            IoSessionLogger.getLogger(session, logger).trace(message);
-        }
-
-        @Override
-        void log(IoSession session, Logger logger, String message, Throwable cause) {
-            IoSessionLogger.getLogger(session, logger).trace(message, cause);
-        }
-
-        @Override
-        public String toString() {
-            return "TRACE";
-        }
-    };
-
-    /**
-     * {@link LogLevel} which logs messages on the DEBUG level.
-     */
-    public static final LogLevel DEBUG = new LogLevel() {
-        @Override
-        void log(IoSession session, Logger logger, String message) {
-            IoSessionLogger.getLogger(session, logger).debug(message);
-        }
-
-        @Override
-        void log(IoSession session, Logger logger, String message, Throwable cause) {
-            IoSessionLogger.getLogger(session, logger).debug(message, cause);
-        }
-
-        @Override
-        public String toString() {
-            return "DEBUG";
-        }
-    };
-
-    /**
-     * {@link LogLevel} which logs messages on the INFO level.
-     */
-    public static final LogLevel INFO = new LogLevel() {
-        @Override
-        void log(IoSession session, Logger logger, String message) {
-            IoSessionLogger.getLogger(session, logger).info(message);
-        }
-
-        @Override
-        void log(IoSession session, Logger logger, String message, Throwable cause) {
-            IoSessionLogger.getLogger(session, logger).info(message, cause);
-        }
-
-        @Override
-        public String toString() {
-            return "INFO";
-        }
-    };
-
-    /**
-     * {@link LogLevel} which logs messages on the WARN level.
-     */
-    public static final LogLevel WARN = new LogLevel() {
-        @Override
-        void log(IoSession session, Logger logger, String message) {
-            IoSessionLogger.getLogger(session, logger).warn(message);
-        }
-
-        @Override
-        void log(IoSession session, Logger logger, String message, Throwable cause) {
-            IoSessionLogger.getLogger(session, logger).warn(message, cause);
-        }
-
-        @Override
-        public String toString() {
-            return "WARN";
-        }
-    };
-
-    /**
-     * {@link LogLevel} which logs messages on the ERROR level.
-     */
-    public static final LogLevel ERROR = new LogLevel() {
-        @Override
-        void log(IoSession session, Logger logger, String message) {
-            IoSessionLogger.getLogger(session, logger).error(message);
-        }
-
-        @Override
-        void log(IoSession session, Logger logger, String message, Throwable cause) {
-            IoSessionLogger.getLogger(session, logger).error(message, cause);
-        }
-
-        @Override
-        public String toString() {
-            return "ERROR";
-        }
-    };
-
     private final Map<IoEventType, LogLevel> logSettings = new CopyOnWriteMap<IoEventType, LogLevel>();
     private final String name;
-    private final Logger logger;
 
     /**
      * Default Constructor.
      */
     public LoggingFilter() {
-        this((String) null);
+        this(LoggingFilter.class.getName());
     }
 
     public LoggingFilter(Class<?> clazz) {
@@ -183,20 +62,14 @@
     public LoggingFilter(String name) {
         this.name = name;
 
-        if (name != null) {
-            this.logger = LoggerFactory.getLogger(name);
-        } else {
-            this.logger = null;
-        }
-
         // Exceptions will be logged to WARN as default.
-        setLogLevel(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);
+        setLogLevel(IoEventType.EXCEPTION_CAUGHT, LogLevel.WARN);
+        setLogLevel(IoEventType.MESSAGE_RECEIVED, LogLevel.INFO);
+        setLogLevel(IoEventType.MESSAGE_SENT, LogLevel.INFO);
+        setLogLevel(IoEventType.SESSION_CLOSED, LogLevel.INFO);
+        setLogLevel(IoEventType.SESSION_CREATED, LogLevel.INFO);
+        setLogLevel(IoEventType.SESSION_IDLE, LogLevel.INFO);
+        setLogLevel(IoEventType.SESSION_OPENED, LogLevel.INFO);
     }
 
     public String getName() {
@@ -207,7 +80,7 @@
     public void exceptionCaught(NextFilter nextFilter, IoSession session,
             Throwable cause) throws Exception {
         getLogLevel(IoEventType.EXCEPTION_CAUGHT).log(
-                session, logger, "EXCEPTION: ", cause);
+                session, name, "EXCEPTION: ", cause);
         nextFilter.exceptionCaught(session, cause);
     }
 
@@ -215,7 +88,7 @@
     public void messageReceived(NextFilter nextFilter, IoSession session,
             Object message) throws Exception {
         getLogLevel(IoEventType.MESSAGE_RECEIVED).log(
-                session, logger, "RECEIVED: " + message);
+                session, name, "RECEIVED: " + message);
         nextFilter.messageReceived(session, message);
     }
 
@@ -223,35 +96,35 @@
     public void messageSent(NextFilter nextFilter, IoSession session,
             WriteRequest writeRequest) throws Exception {
         getLogLevel(IoEventType.MESSAGE_SENT).log(
-                session, logger, "SENT: " + writeRequest.getMessage());
+                session, name, "SENT: " + writeRequest.getMessage());
         nextFilter.messageSent(session, writeRequest);
     }
 
     @Override
     public void sessionClosed(NextFilter nextFilter, IoSession session)
             throws Exception {
-        getLogLevel(IoEventType.SESSION_CLOSED).log(session, logger, "CLOSED");
+        getLogLevel(IoEventType.SESSION_CLOSED).log(session, name, "CLOSED");
         nextFilter.sessionClosed(session);
     }
 
     @Override
     public void sessionCreated(NextFilter nextFilter, IoSession session)
             throws Exception {
-        getLogLevel(IoEventType.SESSION_CREATED).log(session, logger, "CREATED");
+        getLogLevel(IoEventType.SESSION_CREATED).log(session, name, "CREATED");
         nextFilter.sessionCreated(session);
     }
 
     @Override
     public void sessionIdle(NextFilter nextFilter, IoSession session,
             IdleStatus status) throws Exception {
-        getLogLevel(IoEventType.SESSION_IDLE).log(session, logger, "IDLE: " + status);
+        getLogLevel(IoEventType.SESSION_IDLE).log(session, name, "IDLE: " + status);
         nextFilter.sessionIdle(session, status);
     }
 
     @Override
     public void sessionOpened(NextFilter nextFilter, IoSession session)
             throws Exception {
-        getLogLevel(IoEventType.SESSION_OPENED).log(session, logger, "OPENED");
+        getLogLevel(IoEventType.SESSION_OPENED).log(session, name, "OPENED");
         nextFilter.sessionOpened(session);
     }
 
@@ -433,17 +306,5 @@
      */
     public LogLevel getSessionOpenedLogLevel() {
         return getLogLevel(IoEventType.SESSION_OPENED);
-    }
-
-    /**
-     * Defines a logging level.
-     */
-    public static abstract class LogLevel {
-        private LogLevel() {
-        }
-
-        abstract void log(IoSession session, Logger logger, String message);
-
-        abstract void log(IoSession session, Logger logger, String message, Throwable cause);
     }
 }