2013-07-13 39 views
0

Hy,我需要知道如何獲取運行時的歷史記錄。我需要獲得關於每個線程的信息,以及每個已經創建的類,每個方法和每個對象的信息。像調試器一樣。只是我需要一個文件中的所有信息。有人可以幫助我嗎?Java - 獲取運行時信息

+0

嗯,也許它是可行的,但我希望你有很快的存儲空間。 – fge

+0

@fge他問起有關log4j? –

+1

@Baadshah我不這麼認爲...... log4j不跟蹤'新'調用。但是,這聽起來像是XY問題 – fge

回答

7

您可能需要了解JVM TI APIs

JVM工具接口(JVM TI)是 工具使用的本機編程接口。它提供了一種檢查狀態和控制在Java虛擬機器(JVM)中運行的應用程序執行的方法。 JVM TI支持需要訪問JVM狀態的全部工具,包括但不限於:性能分析, 調試,監控,線程分析和覆蓋率分析工具。

注意:JVM TI是在JDK 5.0中引入的。 JVM TI取代了Java虛擬機分析器接口(JVMPI)的Java 和Java虛擬 機器調試接口(JVMDI),從JDK 6起,它不再提供 。

諸如VisualVM之類的調試器使用此接口來了解有關JVM和不同統計信息的信息。

+0

+ 1,不知道天氣對OP有用或沒有。我從來沒有聽說過它.. :) –

+1

@Baadshah這是關於SO的最好的事情。你必須知道很多事情。愛這個好處:-) –

+0

@Baadshah「是」,而不是「天氣」:p * – fge