2012-05-12 8 views
5

Gibt es eine Möglichkeit, dass ich jede Ausführung einer Methode in einem Java-Programm protokollieren/aufzeichnen/überwachen/anzeigen kann.Aufzeichnen jeder Methodenausführung

Zum Beispiel:

12:30:12 someMethod("argument") 
12:30:12 anotherMethos(1, 2, 3) 
12:30:13 finalMethod("invalidInputHere1234") 
+1

Werfen Sie einen Blick auf diesen Artikel: http://extranet.ipl.be/OOMADB/document/IPL_cours/COO/logging-at-loadingTime.htm – ChristopheD

+1

http://stackoverflow.com/questions/4823557/java- Logging-Methode-Aufrufe & http://StackOverflow.com/Questions/4653013/is-there-an-aspect-Aready-written-and-tested-well-for-trace-Logging – assylias

+0

Verwenden Sie einen Profiler <> – bestsss

Antwort

3

Einfache Antwort: Ändern Sie die Methode und die Protokollierung-Anweisungen fügen.

Etwas komplexere Antwort, die funktioniert, auch wenn Sie die Methode nicht ändern können: in Aspekt-basierte Programmierung zu untersuchen.

+0

ich will Hunderte von Methoden zu verfolgen, so kann nicht wirklich jeder einzelne von ihnen ändern. Gibt es keine Möglichkeit, die Ausführung eines Java-Programms zu überwachen, um die ausgeführten Methoden zu sehen? Ich weiß, dass ich NetBeans verwenden kann, um den Wert einer Variablen zu verfolgen - was ist mit welchen Methoden? – jSherz

+2

Werfen Sie einen Blick auf [diesen Artikel] (http://mattewjhall.wordpress.com/2011/03/31/tracing-java-method-execution-with-aspectj/) – Amadan

0

Sie @Loggable Anmerkung aus jcabi-aspects verwenden können, die alle Methoden umhüllt Sie mit einem einfachen Logging-Mechanismus debuggen:

@Loggable(Loggable.DEBUG) 
public String load(URL url) { 
    return url.openConnection().getContent(); 
} 

Es protokolliert durch SLF4J.

Verwandte Themen