Trace the executionTag(s): Environment
JDK1.5+
Generate a StackTrace and then parse the StackTraceElements.[LogUtils.java]
public class LogUtils {
  private static final String NEWLINE = System.getProperty("line.separator");
  private LogUtils (){  }
  public static String getStack(int deep) {
    // deep = 0  no level, only current calling method
    //    n      from "n" levels
    StringBuilder sb = new StringBuilder();
    StackTraceElement ste [] = Thread.currentThread().getStackTrace();
    int k = 2; // startingpoint 0:getstacktrace() 1: getStack()
    int j = ste.length - 1;
    // process the stack
    if (deep > j) deep = j;
    else deep = deep + k;
    while (k <= deep) {
      String line = ste[k].toString();
      sb.append(line + NEWLINE);
      k++;
    }
    return sb.toString();
  }
  public static void main(String args[]){
    Test test = new Test();
    test.doit();
  }
}
class Test {
  public void doit() {
    System.out.println("*Howto Trace only 1 level\n" + LogUtils.getStack(1));
    System.out.println("*Howto Trace only 10 levels\n" + LogUtils.getStack(10));
    System.out.println("*Howto Trace no level (current)\n" + LogUtils.getStack(0));
  }
}
And the output should be
*Howto Trace only 1 level Test.doit(LogUtils.java:35) LogUtils.main(LogUtils.java:29) *Howto Trace only 10 levels Test.doit(LogUtils.java:36) LogUtils.main(LogUtils.java:29) *Howto Trace no level (current) Test.doit(LogUtils.java:37)
See also this Howto
  mail_outline
Send comment, question or suggestion to howto@rgagnon.com
Send comment, question or suggestion to howto@rgagnon.com