View Javadoc
1   /* 
2    * Projet : iky-container
3    * 
4    * $Author$
5    * $Header$
6    * $Revision$
7    * $Date$
8    * 
9    * $Log$
10   * Revision 1.1  2005/05/07 11:23:34  mchaplin
11   * Refactored stacktrace handling to net.mchaplin.commons.StackTraceUtils
12   *
13   */
14  package net.mchaplin.commons;
15  
16  public class StackTraceUtils extends WmindObject {
17  
18      
19      public static void printExtendedStackTrace(String message, Class cls, Exception ex) {
20          log.error(message + cls.toString().substring(6));
21          log.error(WmindObject.EX_CAUSE);
22          StackTraceUtils.printStackTrace(ex.getCause());
23          log.error(WmindObject.EX_STACK);
24          StackTraceUtils.printStackTrace(ex);
25      }
26      
27      /***
28       * Format a StackTrace for logging frameworks.
29       * 
30       * @param ex the exception to format StackTrace from
31       */
32      public static void printStackTrace(Exception ex) {
33          StackTraceElement[] stackArray = null;
34          StackTraceElement stack = null;
35          WmindObject.log.error(ex.getMessage());
36          stackArray = ex.getStackTrace();
37          for (int i=0 ; i<stackArray.length ; i++) {
38              stack = stackArray[i];
39              WmindObject.log.error(WmindObject.STACK_PREFIX+stack.getClassName()+"."+stack.getMethodName()+"."+stack.getLineNumber());
40          }
41      }
42  
43      /***
44       * Format a StackTrace for logging frameworks.
45       * 
46       * @param ex the exception to format StackTrace from
47       */
48      public static void printStackTrace(Throwable ex) {
49          StackTraceElement[] stackArray = null;
50          StackTraceElement stack = null;
51          if (ex != null) {
52      	    WmindObject.log.error(ex.getMessage());
53      	    stackArray = ex.getStackTrace();
54      	    for (int i=0 ; i<stackArray.length ; i++) {
55      	        stack = stackArray[i];
56      	        WmindObject.log.error(WmindObject.STACK_PREFIX+stack.getClassName()+"."+stack.getMethodName()+"."+stack.getLineNumber());
57      	    }
58          }
59      }
60  
61  }