View Javadoc

1   /**
2    *
3    * Copyright 2003-2004 The Apache Software Foundation
4    *
5    *  Licensed under the Apache License, Version 2.0 (the "License");
6    *  you may not use this file except in compliance with the License.
7    *  You may obtain a copy of the License at
8    *
9    *     http://www.apache.org/licenses/LICENSE-2.0
10   *
11   *  Unless required by applicable law or agreed to in writing, software
12   *  distributed under the License is distributed on an "AS IS" BASIS,
13   *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14   *  See the License for the specific language governing permissions and
15   *  limitations under the License.
16   */
17  
18  package org.apache.geronimo.system.logging.log4j;
19  
20  import org.apache.log4j.Level;
21  
22  /**
23   * Extention levels for Log4j
24   *
25   * @version $Rev: 355877 $ $Date: 2005-12-10 18:48:27 -0800 (Sat, 10 Dec 2005) $
26   */
27  public final class XLevel extends Level {
28      public static final int TRACE_INT = Level.DEBUG_INT - 1;
29      private static String TRACE_NAME = "TRACE";
30  
31      /**
32       * The Log4j Level Object to use for trace level messages
33       */
34      public static final XLevel TRACE = new XLevel(TRACE_INT, TRACE_NAME, 7);
35  
36      protected XLevel(int level, String name, int syslogEquiv) {
37          super(level, name, syslogEquiv);
38      }
39  
40      /**
41       * Convert the String argument to a level. If the conversion
42       * fails then this method returns {@link #TRACE}.
43       */
44      public static Level toLevel(String name) {
45          return toLevel(name, XLevel.TRACE);
46      }
47  
48      /**
49       * Convert the String argument to a level. If the conversion
50       * fails, return the level specified by the second argument,
51       * i.e. defaultValue.
52       */
53      public static Level toLevel(String name, Level defaultValue) {
54          if (name == null) {
55              return defaultValue;
56          }
57          if (name.toUpperCase().equals(TRACE_NAME)) {
58              return XLevel.TRACE;
59          }
60          return Level.toLevel(name, defaultValue);
61      }
62  
63      /**
64       * Convert an integer passed as argument to a level. If the
65       * conversion fails, then this method returns {@link #DEBUG}.
66       */
67      public static Level toLevel(int level) throws IllegalArgumentException {
68          if (level == TRACE_INT) {
69              return XLevel.TRACE;
70          } else {
71              return Level.toLevel(level);
72          }
73      }
74  }