java 获取执行堆栈-获取调用者类

最近自己写一个关于日志的小工具,涉及到获取执行的堆栈.

堆栈一般常用于异常中,如:

try {
    //TODO someThing
}catch (Exception e){
    e.printStackTrace();//打印堆栈
}

但是如果没有异常需要获取到执行堆栈.

那么该如何获取呢.

//获取当前线程 并获取线程的堆栈
StackTraceElement stack[] = Thread.currentThread().getStackTrace();

最后就可以通过循环数组来获取信息.

PS:可能log4j也这么干的吧.(没看过log4j源码)

发表评论

电子邮件地址不会被公开。 必填项已用*标注