001: /*
002: * Licensed to the Apache Software Foundation (ASF) under one
003: * or more contributor license agreements. See the NOTICE file
004: * distributed with this work for additional information
005: * regarding copyright ownership. The ASF licenses this file
006: * to you under the Apache License, Version 2.0 (the
007: * "License"); you may not use this file except in compliance
008: * with the License. You may obtain a copy of the License at
009: *
010: * http://www.apache.org/licenses/LICENSE-2.0
011: *
012: * Unless required by applicable law or agreed to in writing,
013: * software distributed under the License is distributed on an
014: * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
015: * KIND, either express or implied. See the License for the
016: * specific language governing permissions and limitations
017: * under the License.
018: *
019: */
020: package org.apache.mina.filter.logging;
021:
022: import org.slf4j.Logger;
023:
024: /**
025: * Defines a logging level.
026: *
027: * @author The Apache MINA Project (dev@mina.apache.org)
028: * @version $Rev: 616100 $, $Date: 2008-01-28 15:58:32 -0700 (Mon, 28 Jan 2008) $
029: *
030: * @see LoggingFilter
031: */
032: public enum LogLevel {
033:
034: /**
035: * {@link LogLevel} which will not log any information
036: */
037: NONE(new LogLevelLogger() {
038: public void log(Logger logger, String message, Object[] args) {
039: }
040:
041: public void log(Logger logger, String message, Throwable cause) {
042: }
043: }),
044:
045: /**
046: * {@link LogLevel} which logs messages on the TRACE level.
047: */
048: TRACE(new LogLevelLogger() {
049: public void log(Logger logger, String message, Object[] args) {
050: logger.trace(message, args);
051: }
052:
053: public void log(Logger logger, String message, Throwable cause) {
054: logger.trace(message, cause);
055: }
056: }),
057:
058: /**
059: * {@link LogLevel} which logs messages on the DEBUG level.
060: */
061: DEBUG(new LogLevelLogger() {
062: public void log(Logger logger, String message, Object[] args) {
063: logger.debug(message, args);
064: }
065:
066: public void log(Logger logger, String message, Throwable cause) {
067: logger.debug(message, cause);
068: }
069: }),
070:
071: /**
072: * {@link LogLevel} which logs messages on the INFO level.
073: */
074: INFO(new LogLevelLogger() {
075: public void log(Logger logger, String message, Object[] args) {
076: logger.info(message, args);
077: }
078:
079: public void log(Logger logger, String message, Throwable cause) {
080: logger.info(message, cause);
081: }
082: }),
083:
084: /**
085: * {@link LogLevel} which logs messages on the WARN level.
086: */
087: WARN(new LogLevelLogger() {
088: public void log(Logger logger, String message, Object[] args) {
089: logger.warn(message, args);
090: }
091:
092: public void log(Logger logger, String message, Throwable cause) {
093: logger.warn(message, cause);
094: }
095: }),
096:
097: /**
098: * {@link LogLevel} which logs messages on the ERROR level.
099: */
100: ERROR(new LogLevelLogger() {
101: public void log(Logger logger, String message, Object[] args) {
102: logger.error(message, args);
103: }
104:
105: public void log(Logger logger, String message, Throwable cause) {
106: logger.error(message, cause);
107: }
108: });
109:
110: private final LogLevelLogger logger;
111:
112: private LogLevel(LogLevelLogger logger) {
113: this .logger = logger;
114: }
115:
116: void log(Logger logger, String format, Object[] args) {
117: this .logger.log(logger, format, args);
118: }
119:
120: void log(Logger logger, String message, Throwable cause) {
121: this .logger.log(logger, message, cause);
122: }
123:
124: private interface LogLevelLogger {
125: void log(Logger logger, String message, Object[] args);
126:
127: void log(Logger logger, String message, Throwable cause);
128: }
129: }
|