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