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