KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > mmbase > util > logging > log4j > StacktraceLoggingPatternLayout


1 package org.mmbase.util.logging.log4j;
2 import org.apache.log4j.PatternLayout;
3 import org.apache.log4j.spi.LoggingEvent;
4
5 /**
6  * This layout can be used in logging in order to print out a stacktrace
7  * for a given logging event. THis is a very expensive call, but can be
8  * very useful when trying to find application bugs. Using this layout
9  * you will see exactly which line of code (or which JSP) generated the
10  * exception.
11  * @author Johannes Verelst
12  */

13 public class StacktraceLoggingPatternLayout extends PatternLayout {
14
15     /**
16      * Overridden from PatternLayout; use the normal pattern to format
17      * the logevent, but also return the current stacktrace.
18      */

19     public String JavaDoc format(LoggingEvent event) {
20         String JavaDoc res = super.format(event);
21         Exception JavaDoc e = new Exception JavaDoc();
22         StackTraceElement JavaDoc[] ste = e.getStackTrace();
23         StringBuffer JavaDoc trace = new StringBuffer JavaDoc();
24         for (int i=0; i<ste.length; i++) {
25           res += "\tat " + ste[i].toString() + "\n";
26         }
27         return res;
28     }
29 }
30
Popular Tags