javaStackTrace
StackTrace线程运行栈
package com.jiek;
import android.util.Log;
/**
* Created by jiek on 10/12/2015.
* contact me: gaopinjie@gmail.com
*/
public class StackTrace {
private static boolean isDebug = true;
public static boolean isDebug() {
return isDebug;
}
private static void l(String... msgs) {
for (String msg : msgs) {
Log.println(Log.DEBUG, "jiekTrace", msg);
}
}
private static void l(StackTraceElement... stackTraceElements) {
for (StackTraceElement stackTraceElement : stackTraceElements) {
// way 1
l(stackTraceElement.toString());
// way 2
// l(stackTraceElement.getClassName() + "." + stackTraceElement.getFileName() + "." + stackTraceElement.getMethodName() + ">line:" + stackTraceElement.getLineNumber());
}
}
public static void trace(String msg) {
l(msg);
trace();
}
public static void traceAll(String msg) {
l(msg);
traceAll();
}
public static void trace() {
if (isDebug()) {
try {
// way 1
StackTraceElement[] stackTraceElements = new Throwable().getStackTrace();
l(stackTraceElements[1], stackTraceElements[2]);
// way 2
// StackTraceElement[] stackTraceElements = new Exception().getStackTrace();
// l(stackTraceElements[1], stackTraceElements[2]);
} catch (Exception e) {
e.printStackTrace();
}
l("-------");
}
}
public static void traceAll() {
if (isDebug()) {
try {
// way 1
l(new Throwable().getStackTrace());
// way 2
// l(new Exception().getStackTrace());
// way 3
// new Exception("StackTrace: ").printStackTrace();
// way 4
// new Throwable("StackTrace: ").printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}SelfLog
Last updated