1
2
3
4
5
6
7
8
9
10
11 package org.mule.module.logging;
12
13 import org.slf4j.Logger;
14 import org.slf4j.Marker;
15
16
17
18
19
20 public class DispatchingLogger implements Logger
21 {
22 protected static final Integer NO_CCL_CLASSLOADER = 0;
23
24 protected Logger originalLogger;
25 protected Integer originalClassLoaderHash;
26 private String name;
27 private MuleLoggerFactory factory;
28
29 public DispatchingLogger(Logger originalLogger, MuleLoggerFactory factory)
30 {
31 final ClassLoader ccl = Thread.currentThread().getContextClassLoader();
32 this.originalClassLoaderHash = ccl == null ? NO_CCL_CLASSLOADER : ccl.hashCode();
33 this.originalLogger = originalLogger;
34 this.name = originalLogger.getName();
35 this.factory = factory;
36 }
37
38 @Override
39 public String getName()
40 {
41 return name;
42 }
43
44 @Override
45 public boolean isTraceEnabled()
46 {
47 return getLogger().isTraceEnabled();
48 }
49
50 @Override
51 public void trace(String msg)
52 {
53 getLogger().trace(msg);
54 }
55
56 @Override
57 public void trace(String format, Object arg)
58 {
59 getLogger().trace(format, arg);
60 }
61
62 @Override
63 public void trace(String format, Object arg1, Object arg2)
64 {
65 getLogger().trace(format, arg1, arg2);
66 }
67
68 @Override
69 public void trace(String format, Object[] argArray)
70 {
71 getLogger().trace(format, argArray);
72 }
73
74 @Override
75 public void trace(String msg, Throwable t)
76 {
77 getLogger().trace(msg, t);
78 }
79
80 @Override
81 public boolean isTraceEnabled(Marker marker)
82 {
83 return getLogger().isTraceEnabled(marker);
84 }
85
86 @Override
87 public void trace(Marker marker, String msg)
88 {
89 getLogger().trace(marker, msg);
90 }
91
92 @Override
93 public void trace(Marker marker, String format, Object arg)
94 {
95 getLogger().trace(marker, format, arg);
96 }
97
98 @Override
99 public void trace(Marker marker, String format, Object arg1, Object arg2)
100 {
101 getLogger().trace(marker, format, arg1, arg2);
102 }
103
104 @Override
105 public void trace(Marker marker, String format, Object[] argArray)
106 {
107 getLogger().trace(marker, format, argArray);
108 }
109
110 @Override
111 public void trace(Marker marker, String msg, Throwable t)
112 {
113 getLogger().trace(marker, msg, t);
114 }
115
116 @Override
117 public boolean isDebugEnabled()
118 {
119 return getLogger().isDebugEnabled();
120 }
121
122 @Override
123 public void debug(String msg)
124 {
125 getLogger().debug(msg);
126 }
127
128 @Override
129 public void debug(String format, Object arg)
130 {
131 getLogger().debug(format, arg);
132 }
133
134 @Override
135 public void debug(String format, Object arg1, Object arg2)
136 {
137 getLogger().debug(format, arg1, arg2);
138 }
139
140 @Override
141 public void debug(String format, Object[] argArray)
142 {
143 getLogger().debug(format, argArray);
144 }
145
146 @Override
147 public void debug(String msg, Throwable t)
148 {
149 getLogger().debug(msg, t);
150 }
151
152 @Override
153 public boolean isDebugEnabled(Marker marker)
154 {
155 return getLogger().isDebugEnabled(marker);
156 }
157
158 @Override
159 public void debug(Marker marker, String msg)
160 {
161 getLogger().debug(marker, msg);
162 }
163
164 @Override
165 public void debug(Marker marker, String format, Object arg)
166 {
167 getLogger().debug(marker, format, arg);
168 }
169
170 @Override
171 public void debug(Marker marker, String format, Object arg1, Object arg2)
172 {
173 getLogger().debug(marker, format, arg1, arg2);
174 }
175
176 @Override
177 public void debug(Marker marker, String format, Object[] argArray)
178 {
179 getLogger().debug(marker, format, argArray);
180 }
181
182 @Override
183 public void debug(Marker marker, String msg, Throwable t)
184 {
185 getLogger().debug(marker, msg, t);
186 }
187
188 @Override
189 public boolean isInfoEnabled()
190 {
191 return getLogger().isInfoEnabled();
192 }
193
194 @Override
195 public void info(String msg)
196 {
197 getLogger().info(msg);
198 }
199
200 @Override
201 public void info(String format, Object arg)
202 {
203 getLogger().info(format, arg);
204 }
205
206 @Override
207 public void info(String format, Object arg1, Object arg2)
208 {
209 getLogger().info(format, arg1, arg2);
210 }
211
212 @Override
213 public void info(String format, Object[] argArray)
214 {
215 getLogger().info(format, argArray);
216 }
217
218 @Override
219 public void info(String msg, Throwable t)
220 {
221 getLogger().info(msg, t);
222 }
223
224 @Override
225 public boolean isInfoEnabled(Marker marker)
226 {
227 return getLogger().isInfoEnabled(marker);
228 }
229
230 @Override
231 public void info(Marker marker, String msg)
232 {
233 getLogger().info(marker, msg);
234 }
235
236 @Override
237 public void info(Marker marker, String format, Object arg)
238 {
239 getLogger().info(marker, format, arg);
240 }
241
242 @Override
243 public void info(Marker marker, String format, Object arg1, Object arg2)
244 {
245 getLogger().info(marker, format, arg1, arg2);
246 }
247
248 @Override
249 public void info(Marker marker, String format, Object[] argArray)
250 {
251 getLogger().info(marker, format, argArray);
252 }
253
254 @Override
255 public void info(Marker marker, String msg, Throwable t)
256 {
257 getLogger().info(marker, msg, t);
258 }
259
260 @Override
261 public boolean isWarnEnabled()
262 {
263 return getLogger().isWarnEnabled();
264 }
265
266 @Override
267 public void warn(String msg)
268 {
269 getLogger().warn(msg);
270 }
271
272 @Override
273 public void warn(String format, Object arg)
274 {
275 getLogger().warn(format, arg);
276 }
277
278 @Override
279 public void warn(String format, Object[] argArray)
280 {
281 getLogger().warn(format, argArray);
282 }
283
284 @Override
285 public void warn(String format, Object arg1, Object arg2)
286 {
287 getLogger().warn(format, arg1, arg2);
288 }
289
290 @Override
291 public void warn(String msg, Throwable t)
292 {
293 getLogger().warn(msg, t);
294 }
295
296 @Override
297 public boolean isWarnEnabled(Marker marker)
298 {
299 return getLogger().isWarnEnabled(marker);
300 }
301
302 @Override
303 public void warn(Marker marker, String msg)
304 {
305 getLogger().warn(marker, msg);
306 }
307
308 @Override
309 public void warn(Marker marker, String format, Object arg)
310 {
311 getLogger().warn(marker, format, arg);
312 }
313
314 @Override
315 public void warn(Marker marker, String format, Object arg1, Object arg2)
316 {
317 getLogger().warn(marker, format, arg1, arg2);
318 }
319
320 @Override
321 public void warn(Marker marker, String format, Object[] argArray)
322 {
323 getLogger().warn(marker, format, argArray);
324 }
325
326 @Override
327 public void warn(Marker marker, String msg, Throwable t)
328 {
329 getLogger().warn(marker, msg, t);
330 }
331
332 @Override
333 public boolean isErrorEnabled()
334 {
335 return getLogger().isErrorEnabled();
336 }
337
338 @Override
339 public void error(String msg)
340 {
341 getLogger().error(msg);
342 }
343
344 @Override
345 public void error(String format, Object arg)
346 {
347 getLogger().error(format, arg);
348 }
349
350 @Override
351 public void error(String format, Object arg1, Object arg2)
352 {
353 getLogger().error(format, arg1, arg2);
354 }
355
356 @Override
357 public void error(String format, Object[] argArray)
358 {
359 getLogger().error(format, argArray);
360 }
361
362 @Override
363 public void error(String msg, Throwable t)
364 {
365 getLogger().error(msg, t);
366 }
367
368 @Override
369 public boolean isErrorEnabled(Marker marker)
370 {
371 return getLogger().isErrorEnabled(marker);
372 }
373
374 @Override
375 public void error(Marker marker, String msg)
376 {
377 getLogger().error(marker, msg);
378 }
379
380 @Override
381 public void error(Marker marker, String format, Object arg)
382 {
383 getLogger().error(marker, format, arg);
384 }
385
386 @Override
387 public void error(Marker marker, String format, Object arg1, Object arg2)
388 {
389 getLogger().error(marker, format, arg1, arg2);
390 }
391
392 @Override
393 public void error(Marker marker, String format, Object[] argArray)
394 {
395 getLogger().error(marker, format, argArray);
396 }
397
398 @Override
399 public void error(Marker marker, String msg, Throwable t)
400 {
401 getLogger().error(marker, msg, t);
402 }
403
404
405
406
407
408
409 protected Logger getLogger()
410 {
411 final ClassLoader currentCl = Thread.currentThread().getContextClassLoader();
412 if (currentCl == null || currentCl.hashCode() == originalClassLoaderHash)
413 {
414 return originalLogger;
415 }
416
417
418
419 return factory.getLogger(getName(), currentCl);
420 }
421
422 public MuleLoggerFactory getFactory()
423 {
424 return factory;
425 }
426 }