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();
}
}
}
}在需要监控的地方,导入 import static com.jiek.originalapk.StackTrace.trace; 就可以使用短方法去执行此静态方法。
SelfLog
线程栈加日志综合工具
使用方法也可同理使用
Last updated
Was this helpful?