1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 package goldengate.common.logging;
22
23 import org.jboss.netty.logging.InternalLogLevel;
24 import org.jboss.netty.logging.InternalLogger;
25
26
27
28
29
30
31
32
33
34
35
36
37
38 public abstract class GgInternalLogger implements InternalLogger {
39 private static int BASELEVEL;
40
41
42
43
44 private static int detectLoggingBaseLevel() {
45 StackTraceElement []elt = Thread.currentThread().getStackTrace();
46 int i = 0;
47 for (i = 0; i < elt.length ; i++) {
48 if (elt[i].getMethodName().equalsIgnoreCase("detectLoggingBaseLevel")) {
49 break;
50 }
51 }
52 return i;
53 }
54 {
55 BASELEVEL = detectLoggingBaseLevel();
56 }
57
58
59
60
61
62
63 public static String getImmediateMethodAndLine() {
64 StackTraceElement elt = Thread.currentThread().getStackTrace()[BASELEVEL+1];
65 return getMethodAndLine(elt);
66 }
67
68
69
70
71
72
73 protected static String getLoggerMethodAndLine() {
74 StackTraceElement elt = Thread.currentThread().getStackTrace()[BASELEVEL+2];
75 return getMethodAndLine(elt);
76 }
77
78
79
80
81
82
83 public static String getRankMethodAndLine(int rank) {
84 StackTraceElement elt = Thread.currentThread().getStackTrace()[rank];
85 return getMethodAndLine(elt);
86 }
87
88
89
90
91
92 private static String getMethodAndLine(StackTraceElement elt) {
93 StringBuilder builder = new StringBuilder(elt.getClassName());
94 builder.append('.');
95 builder.append(elt.getMethodName());
96 builder.append('(');
97 builder.append(elt.getFileName());
98 builder.append(':');
99 builder.append(elt.getLineNumber());
100 builder.append(") : ");
101 return builder.toString();
102 }
103
104
105
106
107 public boolean isEnabled(InternalLogLevel level) {
108 switch (level) {
109 case DEBUG:
110 return isDebugEnabled();
111 case INFO:
112 return isInfoEnabled();
113 case WARN:
114 return isWarnEnabled();
115 case ERROR:
116 return isErrorEnabled();
117 default:
118 throw new Error();
119 }
120 }
121
122 public void log(InternalLogLevel level, String msg, Throwable cause) {
123 switch (level) {
124 case DEBUG:
125 debug(msg, cause);
126 break;
127 case INFO:
128 info(msg, cause);
129 break;
130 case WARN:
131 warn(msg, cause);
132 break;
133 case ERROR:
134 error(msg, cause);
135 break;
136 default:
137 throw new Error();
138 }
139 }
140
141 public void log(InternalLogLevel level, String msg) {
142 switch (level) {
143 case DEBUG:
144 debug(msg);
145 break;
146 case INFO:
147 info(msg);
148 break;
149 case WARN:
150 warn(msg);
151 break;
152 case ERROR:
153 error(msg);
154 break;
155 default:
156 throw new Error();
157 }
158 }
159
160
161
162
163
164
165 public abstract void debug(String format, String arg1);
166
167
168
169
170
171
172 public abstract void info(String format, String arg1);
173
174
175
176
177
178
179 public abstract void warn(String format, String arg1);
180
181
182
183
184
185
186 public abstract void error(String format, String arg1);
187
188
189
190
191
192
193
194 public abstract void debug(String format, String arg1, String arg2);
195
196
197
198
199
200
201
202 public abstract void info(String format, String arg1, String arg2);
203
204
205
206
207
208
209
210 public abstract void warn(String format, String arg1, String arg2);
211
212
213
214
215
216
217
218 public abstract void error(String format, String arg1, String arg2);
219
220
221
222
223
224
225
226 public abstract void debug(String format, Object arg1, Object arg2);
227
228
229
230
231
232
233
234 public abstract void info(String format, Object arg1, Object arg2);
235
236
237
238
239
240
241
242 public abstract void warn(String format, Object arg1, Object arg2);
243
244
245
246
247
248
249
250 public abstract void error(String format, Object arg1, Object arg2);
251
252
253
254
255
256
257 public abstract void debug(String format, Object arg1);
258
259
260
261
262
263
264 public abstract void info(String format, Object arg1);
265
266
267
268
269
270
271 public abstract void warn(String format, Object arg1);
272
273
274
275
276
277
278 public abstract void error(String format, Object arg1);
279 }