1. Project Clover database Tue Dec 20 2016 21:24:09 CET
  2. Package org.xwiki.logging

File LogTree.java

 

Coverage histogram

../../../img/srcFileCovDistChart8.png
54% of files have more coverage

Code metrics

8
87
69
1
526
376
74
0.85
1.26
69
1.07

Classes

Class Line # Actions
LogTree 37 87 0% 74 33
0.798780579.9%
 

Contributing tests

This file is covered by 3 tests. .

Source view

1    /*
2    * See the NOTICE file distributed with this work for additional
3    * information regarding copyright ownership.
4    *
5    * This is free software; you can redistribute it and/or modify it
6    * under the terms of the GNU Lesser General Public License as
7    * published by the Free Software Foundation; either version 2.1 of
8    * the License, or (at your option) any later version.
9    *
10    * This software is distributed in the hope that it will be useful,
11    * but WITHOUT ANY WARRANTY; without even the implied warranty of
12    * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13    * Lesser General Public License for more details.
14    *
15    * You should have received a copy of the GNU Lesser General Public
16    * License along with this software; if not, write to the Free
17    * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
18    * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
19    */
20    package org.xwiki.logging;
21   
22    import java.util.Arrays;
23    import java.util.Stack;
24   
25    import org.apache.commons.lang3.ArrayUtils;
26    import org.slf4j.Marker;
27    import org.xwiki.logging.event.LogEvent;
28    import org.xwiki.observation.event.BeginEvent;
29    import org.xwiki.observation.event.EndEvent;
30   
31    /**
32    * Logs organized as a tree.
33    *
34    * @version $Id: 829654b320447f2afa1a623e97671e334bed985f $
35    * @since 5.4M1
36    */
 
37    public class LogTree extends LogTreeNode implements Logger
38    {
39    /**
40    * Serialization identifier.
41    */
42    private static final long serialVersionUID = 1L;
43   
44    private Stack<LogTreeNode> currentNode = new Stack<LogTreeNode>();
45   
46    /**
47    * Default constructor.
48    */
 
49  3 toggle public LogTree()
50    {
51  3 this.currentNode.push(this);
52    }
53   
 
54  0 toggle @Override
55    public void log(org.slf4j.Logger targetLogger)
56    {
57  0 for (LogEvent logEvent : this) {
58  0 logEvent.log(targetLogger);
59    }
60    }
61   
62    /**
63    * @param level the log level
64    * @param format the log message
65    * @param arguments the event arguments to insert in the message
66    * @return the created {@link LogEvent} instance
67    */
 
68  0 toggle protected LogEvent log(LogLevel level, String format, Object[] arguments)
69    {
70  0 return log(null, level, format, arguments);
71    }
72   
73    /**
74    * @param marker the log marker
75    * @param level the log level
76    * @param format the log message
77    * @param arguments the event arguments to insert in the message
78    * @return the created {@link LogEvent} instance
79    */
 
80  66 toggle protected LogEvent log(Marker marker, LogLevel level, String format, Object[] arguments)
81    {
82  66 Object[] actualArray;
83  66 Throwable throwable;
84  66 if (arguments.length > 0 && arguments[arguments.length - 1] instanceof Throwable) {
85  0 actualArray = Arrays.copyOf(arguments, arguments.length - 1);
86  0 throwable = (Throwable) arguments[arguments.length - 1];
87    } else {
88  66 actualArray = arguments;
89  66 throwable = null;
90    }
91   
92  66 return log(marker, level, format, actualArray, throwable);
93    }
94   
95    /**
96    * @param level the log level
97    * @param format the log message
98    * @param arguments the event arguments to insert in the message
99    * @param throwable the throwable associated to the event
100    * @return the created {@link LogEvent} instance
101    */
 
102  0 toggle protected LogEvent log(LogLevel level, String format, Object[] arguments, Throwable throwable)
103    {
104  0 return log(null, level, format, arguments, throwable);
105    }
106   
107    /**
108    * @param marker the log marker
109    * @param level the log level
110    * @param format the log message
111    * @param arguments the event arguments to insert in the message
112    * @param throwable the throwable associated to the event
113    * @return the created {@link LogEvent} instance
114    */
 
115  76 toggle protected LogEvent log(Marker marker, LogLevel level, String format, Object[] arguments, Throwable throwable)
116    {
117  76 LogEvent logEvent = LogUtils.newLogEvent(marker, level, format, arguments, throwable);
118   
119  76 log(logEvent);
120   
121  76 return logEvent;
122    }
123   
 
124  76 toggle @Override
125    public void log(LogEvent logEvent)
126    {
127  76 if (logEvent instanceof BeginEvent) {
128  9 LogTreeNode node = new LogTreeNode(logEvent);
129  9 this.currentNode.peek().add(node);
130  9 this.currentNode.push(node);
131  67 } else if (logEvent instanceof EndEvent) {
132  9 this.currentNode.peek().add(logEvent);
133  9 pop();
134    } else {
135  58 this.currentNode.peek().add(logEvent);
136    }
137    }
138   
139    /**
140    * Make log tree caret go the parent next sibling.
141    */
 
142  9 toggle public void pop()
143    {
144  9 if (this.currentNode.peek() != this) {
145  9 this.currentNode.pop();
146    }
147    }
148   
149    // Logger
150   
 
151  0 toggle @Override
152    public String getName()
153    {
154  0 return null;
155    }
156   
157    // TRACE
158   
 
159  0 toggle @Override
160    public boolean isTraceEnabled()
161    {
162  0 return true;
163    }
164   
 
165  1 toggle @Override
166    public void trace(String msg)
167    {
168  1 trace(msg, ArrayUtils.EMPTY_OBJECT_ARRAY);
169    }
170   
 
171  1 toggle @Override
172    public void trace(String format, Object arg)
173    {
174  1 trace((Marker) null, format, arg);
175    }
176   
 
177  1 toggle @Override
178    public void trace(String format, Object arg1, Object arg2)
179    {
180  1 trace((Marker) null, format, arg1, arg2);
181    }
182   
 
183  2 toggle @Override
184    public void trace(String format, Object... arguments)
185    {
186  2 trace((Marker) null, format, arguments);
187    }
188   
 
189  1 toggle @Override
190    public void trace(String msg, Throwable t)
191    {
192  1 trace((Marker) null, msg, t);
193    }
194   
 
195  0 toggle @Override
196    public boolean isTraceEnabled(Marker marker)
197    {
198  0 return true;
199    }
200   
 
201  3 toggle @Override
202    public void trace(Marker marker, String msg)
203    {
204  3 trace(marker, msg, ArrayUtils.EMPTY_OBJECT_ARRAY);
205    }
206   
 
207  2 toggle @Override
208    public void trace(Marker marker, String format, Object arg)
209    {
210  2 trace(marker, format, new Object[] { arg });
211    }
212   
 
213  2 toggle @Override
214    public void trace(Marker marker, String format, Object arg1, Object arg2)
215    {
216  2 trace(marker, format, new Object[] { arg1, arg2 });
217    }
218   
 
219  10 toggle @Override
220    public void trace(Marker marker, String format, Object... arguments)
221    {
222  10 log(marker, LogLevel.TRACE, format, arguments);
223    }
224   
 
225  2 toggle @Override
226    public void trace(Marker marker, String msg, Throwable t)
227    {
228  2 log(marker, LogLevel.TRACE, msg, ArrayUtils.EMPTY_OBJECT_ARRAY, t);
229    }
230   
231    // DEBUG
232   
 
233  0 toggle @Override
234    public boolean isDebugEnabled()
235    {
236  0 return true;
237    }
238   
 
239  1 toggle @Override
240    public void debug(String msg)
241    {
242  1 debug((Marker) null, msg);
243    }
244   
 
245  1 toggle @Override
246    public void debug(String format, Object arg)
247    {
248  1 debug((Marker) null, format, arg);
249    }
250   
 
251  1 toggle @Override
252    public void debug(String format, Object arg1, Object arg2)
253    {
254  1 debug((Marker) null, format, arg1, arg2);
255    }
256   
 
257  1 toggle @Override
258    public void debug(String format, Object... arguments)
259    {
260  1 debug((Marker) null, format, arguments);
261    }
262   
 
263  1 toggle @Override
264    public void debug(String msg, Throwable t)
265    {
266  1 debug((Marker) null, msg, t);
267    }
268   
 
269  0 toggle @Override
270    public boolean isDebugEnabled(Marker marker)
271    {
272  0 return true;
273    }
274   
 
275  4 toggle @Override
276    public void debug(Marker marker, String msg)
277    {
278  4 debug(marker, msg, ArrayUtils.EMPTY_OBJECT_ARRAY);
279    }
280   
 
281  2 toggle @Override
282    public void debug(Marker marker, String format, Object arg)
283    {
284  2 debug(marker, format, new Object[] { arg });
285    }
286   
 
287  2 toggle @Override
288    public void debug(Marker marker, String format, Object arg1, Object arg2)
289    {
290  2 debug(marker, format, new Object[] { arg1, arg2 });
291    }
292   
 
293  10 toggle @Override
294    public void debug(Marker marker, String format, Object... arguments)
295    {
296  10 log(marker, LogLevel.DEBUG, format, arguments);
297    }
298   
 
299  2 toggle @Override
300    public void debug(Marker marker, String msg, Throwable t)
301    {
302  2 log(marker, LogLevel.DEBUG, msg, ArrayUtils.EMPTY_OBJECT_ARRAY, t);
303    }
304   
305    // INFO
306   
 
307  0 toggle @Override
308    public boolean isInfoEnabled()
309    {
310  0 return true;
311    }
312   
 
313  1 toggle @Override
314    public void info(String msg)
315    {
316  1 info((Marker) null, msg);
317    }
318   
 
319  1 toggle @Override
320    public void info(String format, Object arg)
321    {
322  1 info((Marker) null, format, arg);
323    }
324   
 
325  1 toggle @Override
326    public void info(String format, Object arg1, Object arg2)
327    {
328  1 info((Marker) null, format, arg1, arg2);
329    }
330   
 
331  1 toggle @Override
332    public void info(String format, Object... arguments)
333    {
334  1 info((Marker) null, format, arguments);
335    }
336   
 
337  1 toggle @Override
338    public void info(String msg, Throwable t)
339    {
340  1 info((Marker) null, msg, t);
341    }
342   
 
343  0 toggle @Override
344    public boolean isInfoEnabled(Marker marker)
345    {
346  0 return true;
347    }
348   
 
349  4 toggle @Override
350    public void info(Marker marker, String msg)
351    {
352  4 info(marker, msg, ArrayUtils.EMPTY_OBJECT_ARRAY);
353    }
354   
 
355  2 toggle @Override
356    public void info(Marker marker, String format, Object arg)
357    {
358  2 info(marker, format, new Object[] { arg });
359    }
360   
 
361  2 toggle @Override
362    public void info(Marker marker, String format, Object arg1, Object arg2)
363    {
364  2 info(marker, format, new Object[] { arg1, arg2 });
365    }
366   
 
367  10 toggle @Override
368    public void info(Marker marker, String format, Object... arguments)
369    {
370  10 log(marker, LogLevel.INFO, format, arguments);
371    }
372   
 
373  2 toggle @Override
374    public void info(Marker marker, String msg, Throwable t)
375    {
376  2 log(marker, LogLevel.INFO, msg, ArrayUtils.EMPTY_OBJECT_ARRAY, t);
377    }
378   
379    // WARN
380   
 
381  0 toggle @Override
382    public boolean isWarnEnabled()
383    {
384  0 return true;
385    }
386   
 
387  1 toggle @Override
388    public void warn(String msg)
389    {
390  1 warn((Marker) null, msg);
391    }
392   
 
393  1 toggle @Override
394    public void warn(String format, Object arg)
395    {
396  1 warn((Marker) null, format, arg);
397    }
398   
 
399  1 toggle @Override
400    public void warn(String format, Object arg1, Object arg2)
401    {
402  1 warn((Marker) null, format, arg1, arg2);
403    }
404   
 
405  1 toggle @Override
406    public void warn(String format, Object... arguments)
407    {
408  1 warn((Marker) null, format, arguments);
409    }
410   
 
411  1 toggle @Override
412    public void warn(String msg, Throwable t)
413    {
414  1 warn((Marker) null, msg, t);
415    }
416   
 
417  0 toggle @Override
418    public boolean isWarnEnabled(Marker marker)
419    {
420  0 return true;
421    }
422   
 
423  4 toggle @Override
424    public void warn(Marker marker, String msg)
425    {
426  4 warn(marker, msg, ArrayUtils.EMPTY_OBJECT_ARRAY);
427    }
428   
 
429  2 toggle @Override
430    public void warn(Marker marker, String format, Object arg)
431    {
432  2 warn(marker, format, new Object[] { arg });
433    }
434   
 
435  2 toggle @Override
436    public void warn(Marker marker, String format, Object arg1, Object arg2)
437    {
438  2 warn(marker, format, new Object[] { arg1, arg2 });
439    }
440   
 
441  10 toggle @Override
442    public void warn(Marker marker, String format, Object... arguments)
443    {
444  10 log(marker, LogLevel.WARN, format, arguments);
445    }
446   
 
447  2 toggle @Override
448    public void warn(Marker marker, String msg, Throwable t)
449    {
450  2 log(marker, LogLevel.WARN, msg, ArrayUtils.EMPTY_OBJECT_ARRAY, t);
451    }
452   
453    // ERROR
454   
 
455  0 toggle @Override
456    public boolean isErrorEnabled()
457    {
458  0 return true;
459    }
460   
 
461  9 toggle @Override
462    public void error(String msg)
463    {
464  9 error((Marker) null, msg);
465    }
466   
 
467  1 toggle @Override
468    public void error(String format, Object arg)
469    {
470  1 error((Marker) null, format, arg);
471    }
472   
 
473  1 toggle @Override
474    public void error(String format, Object arg1, Object arg2)
475    {
476  1 error((Marker) null, format, arg1, arg2);
477    }
478   
 
479  1 toggle @Override
480    public void error(String format, Object... arguments)
481    {
482  1 error((Marker) null, format, arguments);
483    }
484   
 
485  1 toggle @Override
486    public void error(String msg, Throwable t)
487    {
488  1 error((Marker) null, msg, t);
489    }
490   
 
491  0 toggle @Override
492    public boolean isErrorEnabled(Marker marker)
493    {
494  0 return true;
495    }
496   
 
497  20 toggle @Override
498    public void error(Marker marker, String msg)
499    {
500  20 error(marker, msg, ArrayUtils.EMPTY_OBJECT_ARRAY);
501    }
502   
 
503  2 toggle @Override
504    public void error(Marker marker, String format, Object arg)
505    {
506  2 error(marker, format, new Object[] { arg });
507    }
508   
 
509  2 toggle @Override
510    public void error(Marker marker, String format, Object arg1, Object arg2)
511    {
512  2 error(marker, format, new Object[] { arg1, arg2 });
513    }
514   
 
515  26 toggle @Override
516    public void error(Marker marker, String format, Object... arguments)
517    {
518  26 log(marker, LogLevel.ERROR, format, arguments);
519    }
520   
 
521  2 toggle @Override
522    public void error(Marker marker, String msg, Throwable t)
523    {
524  2 log(marker, LogLevel.ERROR, msg, ArrayUtils.EMPTY_OBJECT_ARRAY, t);
525    }
526    }