2012-05-12 15 views
5

Czy istnieje sposób, w jaki mogę logować/nagrywać/monitorować/przeglądać każde wykonanie metody wewnątrz programu Java.Zapis każdego wykonania metody

Na przykład:

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

Spójrz na ten artykuł: http://extranet.ipl.be/OOMADB/document/IPL_cours/COO/logging-at-loadingTime.htm – ChristopheD

+1

http://stackoverflow.com/questions/4823557/java- logowanie-metody-wywołania i http://stackoverflow.com/questions/4653013/is-there-an-aspect-already-written-and-tested-well-for-trace-logging – assylias

+0

użyj profilera <> – bestsss

Odpowiedz

3

Prosta odpowiedź: zmodyfikować metodę i wstawić sprawozdań rejestrowania.

Trochę bardziej złożona odpowiedź, która działa, nawet jeśli nie można zmodyfikować metody: zajrzyj do programowania aspektowego.

+0

Chcę śledzić setki metod, więc nie można zmienić każdego z nich. Czy nie istnieje sposób monitorowania wykonywania programu Java, aby zobaczyć uruchamiane metody? Wiem, że mogę używać NetBeans do śledzenia wartości zmiennej - jakie metody zostały wykonane? – jSherz

+2

Spójrz na [ten artykuł] (http://mathewjhall.wordpress.com/2011/03/31/tracing-java-method-execution-with-aspectj/) – Amadan

0

Można użyć @Loggable adnotacji z jcabi-aspects, która otacza wszystkich metod, które chcesz debugować za pomocą prostego mechanizmu rejestrowania:

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

Loguje się przez SLF4J.