import java.text.MessageFormat;
public class LogUtil {
/**
* print current method stack
*/
public static String getStackTrace() {
StackTraceElement[] stackTrace = Thread.currentThread().getStackTrace();
if(stackTrace == null) {
return "no stack...";
}
StringBuffer stackTraceSB = new StringBuffer();
for(int i = 2; i < stackTrace.length; i ++) {
StackTraceElement stackTraceElement = stackTrace[i];
if(stackTraceSB.length() > 0) {
stackTraceSB.append(" <- ");
stackTraceSB.append(System.getProperty("line.separator"));
}
stackTraceSB.append(MessageFormat.format("{0}{1}.{2}() {3}:{4}"
,stackTraceElement.isNativeMethod() ? "native ": ""
,stackTraceElement.getClassName()
,stackTraceElement.getMethodName()
,stackTraceElement.getFileName()
,stackTraceElement.getLineNumber()));
}
return stackTraceSB.toString();
}
}