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 }