1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.apache.log4j;
21 import java.io.IOException;
22 import java.io.ObjectInputStream;
23 import java.io.ObjectOutputStream;
24 import java.io.ObjectStreamException;
25 import java.io.Serializable;
26
27
28
29
30
31
32
33
34
35
36
37
38
39 public class Level extends Priority implements Serializable {
40
41
42
43
44
45 public static final int TRACE_INT = 5000;
46
47
48 public static final int X_TRACE_INT = DEBUG_INT - 100;
49
50
51
52
53 final static public Level OFF = new Level(OFF_INT, "OFF", 0);
54
55
56
57
58
59 final static public Level FATAL = new Level(FATAL_INT, "FATAL", 0);
60
61
62
63
64 final static public Level ERROR = new Level(ERROR_INT, "ERROR", 3);
65
66
67
68
69 final static public Level WARN = new Level(WARN_INT, "WARN", 4);
70
71
72
73
74
75 final static public Level INFO = new Level(INFO_INT, "INFO", 6);
76
77
78
79
80
81 final static public Level DEBUG = new Level(DEBUG_INT, "DEBUG", 7);
82
83
84
85
86
87
88 public static final Level TRACE = new Level(TRACE_INT, "TRACE", 7);
89
90
91
92
93
94 final static public Level ALL = new Level(ALL_INT, "ALL", 7);
95
96
97
98
99 static final long serialVersionUID = 3491141966387921974L;
100
101
102
103
104 protected
105 Level(int level, String levelStr, int syslogEquivalent) {
106 super(level, levelStr, syslogEquivalent);
107 }
108
109
110
111
112
113
114 public
115 static
116 Level toLevel(String sArg) {
117 return (Level) toLevel(sArg, Level.DEBUG);
118 }
119
120
121
122
123
124
125 public
126 static
127 Level toLevel(int val) {
128 return (Level) toLevel(val, Level.DEBUG);
129 }
130
131
132
133
134
135 public
136 static
137 Level toLevel(int val, Level defaultLevel) {
138 switch(val) {
139 case ALL_INT: return ALL;
140 case DEBUG_INT: return Level.DEBUG;
141 case INFO_INT: return Level.INFO;
142 case WARN_INT: return Level.WARN;
143 case ERROR_INT: return Level.ERROR;
144 case FATAL_INT: return Level.FATAL;
145 case OFF_INT: return OFF;
146 case TRACE_INT: return Level.TRACE;
147 default: return defaultLevel;
148 }
149 }
150
151
152
153
154
155
156 public
157 static
158 Level toLevel(String sArg, Level defaultLevel) {
159 if(sArg == null)
160 return defaultLevel;
161
162 String s = sArg.toUpperCase();
163
164 if(s.equals("ALL")) return Level.ALL;
165 if(s.equals("DEBUG")) return Level.DEBUG;
166 if(s.equals("INFO")) return Level.INFO;
167 if(s.equals("WARN")) return Level.WARN;
168 if(s.equals("ERROR")) return Level.ERROR;
169 if(s.equals("FATAL")) return Level.FATAL;
170 if(s.equals("OFF")) return Level.OFF;
171 if(s.equals("TRACE")) return Level.TRACE;
172 return defaultLevel;
173 }
174
175
176
177
178
179
180
181 private void readObject(final ObjectInputStream s) throws IOException, ClassNotFoundException {
182 s.defaultReadObject();
183 level = s.readInt();
184 syslogEquivalent = s.readInt();
185 levelStr = s.readUTF();
186 if (levelStr == null) {
187 levelStr = "";
188 }
189 }
190
191
192
193
194
195
196 private void writeObject(final ObjectOutputStream s) throws IOException {
197 s.defaultWriteObject();
198 s.writeInt(level);
199 s.writeInt(syslogEquivalent);
200 s.writeUTF(levelStr);
201 }
202
203
204
205
206
207
208
209 private Object readResolve() throws ObjectStreamException {
210
211
212
213 if (getClass() == Level.class) {
214 return toLevel(level);
215 }
216
217
218
219 return this;
220 }
221 }