View Javadoc

1   /*
2    *  Licensed to the Apache Software Foundation (ASF) under one
3    *  or more contributor license agreements.  See the NOTICE file
4    *  distributed with this work for additional information
5    *  regarding copyright ownership.  The ASF licenses this file
6    *  to you under the Apache License, Version 2.0 (the
7    *  "License"); you may not use this file except in compliance
8    *  with the License.  You may obtain a copy of the License at
9    *
10   *    http://www.apache.org/licenses/LICENSE-2.0
11   *
12   *  Unless required by applicable law or agreed to in writing,
13   *  software distributed under the License is distributed on an
14   *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15   *  KIND, either express or implied.  See the License for the
16   *  specific language governing permissions and limitations
17   *  under the License.
18   *
19   */
20  package org.apache.mina.filter.logging;
21  
22  import org.slf4j.Logger;
23  
24  /**
25   * Defines a logging level.
26   * 
27   * @author The Apache MINA Project (dev@mina.apache.org)
28   * @version $Rev: 616100 $, $Date: 2008-01-28 15:58:32 -0700 (Mon, 28 Jan 2008) $
29   * 
30   * @see LoggingFilter
31   */
32  public enum LogLevel {
33  
34      /**
35       * {@link LogLevel} which will not log any information
36       */
37      NONE(new LogLevelLogger() {
38          public void log(Logger logger, String message, Object[] args) {
39          }
40  
41          public void log(Logger logger, String message, Throwable cause) {
42          }
43      }),
44  
45      /**
46       * {@link LogLevel} which logs messages on the TRACE level.
47       */
48      TRACE(new LogLevelLogger() {
49          public void log(Logger logger, String message, Object[] args) {
50              logger.trace(message, args);
51          }
52  
53          public void log(Logger logger, String message, Throwable cause) {
54              logger.trace(message, cause);
55          }
56      }),
57  
58      /**
59       * {@link LogLevel} which logs messages on the DEBUG level.
60       */
61      DEBUG(new LogLevelLogger() {
62          public void log(Logger logger, String message, Object[] args) {
63              logger.debug(message, args);
64          }
65  
66          public void log(Logger logger, String message, Throwable cause) {
67              logger.debug(message, cause);
68          }
69      }),
70  
71      /**
72       * {@link LogLevel} which logs messages on the INFO level.
73       */
74      INFO(new LogLevelLogger() {
75          public void log(Logger logger, String message, Object[] args) {
76              logger.info(message, args);
77          }
78  
79          public void log(Logger logger, String message, Throwable cause) {
80              logger.info(message, cause);
81          }
82      }),
83  
84      /**
85       * {@link LogLevel} which logs messages on the WARN level.
86       */
87      WARN(new LogLevelLogger() {
88          public void log(Logger logger, String message, Object[] args) {
89              logger.warn(message, args);
90          }
91  
92          public void log(Logger logger, String message, Throwable cause) {
93              logger.warn(message, cause);
94          }
95      }),
96  
97      /**
98       * {@link LogLevel} which logs messages on the ERROR level.
99       */
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         void log(Logger logger, String message, Throwable cause);
127     }
128 }