1
2
3
4
5
6
7
8
9
10
11
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 }