如何獲取call stack(調(diào)用棧)信息——之二
從這兒可以看到:注意如果客戶端程序沒有顯式地指定源方法名和源類名,則LogRecord 類將通過分析 call stack(調(diào)用棧)來自動(dòng)提取這些信息(方法getSourceMethodname和方法getSourceClassName),我們已經(jīng)走在正確的道路上了,繼續(xù)追查getSourceMethodname()…………


































沒錯(cuò),就是這個(gè)StackTraceElement數(shù)組記載了我們想要的信息(類名,方法名等),這和我們用到的Exception類中的顯示調(diào)用棧是一個(gè)道理的。
注意:這兒通過創(chuàng)建一個(gè)Throwable實(shí)例,并利用在Throwable類中提供這個(gè)getStackTrace()方法,返回是StackTraceElement數(shù)組來獲取到了調(diào)用棧信息。
我們來看一個(gè)小例子
















打印如下
chapter5.CallStack.showTrace(CallStack.java:5)
我們亦可以通過這樣一個(gè)簡(jiǎn)單地實(shí)例化一個(gè)Throwable來獲取相應(yīng)的call strack。
不過,一般的應(yīng)用級(jí)程序里面不太會(huì)用到它,可能在工具級(jí)軟件里面用得多一點(diǎn)了:)
posted on 2005-03-13 18:25 carob 閱讀(4559) 評(píng)論(1) 編輯 收藏 所屬分類: Reflection