2012-05-12 8 views
5

¿Hay alguna manera de que pueda registrar/registrar/supervisar/ver cada ejecución de un método dentro de un programa Java?Registrar cada ejecución de método

Por ejemplo:

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

Eche un vistazo a este artículo: http://extranet.ipl.be/OOMADB/document/IPL_cours/COO/logging-at-loadingTime.htm – ChristopheD

+1

http://stackoverflow.com/questions/4823557/java- logging-method-calls & http://stackoverflow.com/questions/4653013/is-there-an-aspect-already-written-and-tested-well-for-trace-logging – assylias

+0

utilice un generador de perfiles <> – bestsss

Respuesta

3

Respuesta fácil: modificar el método, e insertar declaraciones de registro.

Respuesta algo más compleja, que funciona incluso si no puede modificar el método: consulte la programación basada en aspectos.

+0

Quiero para rastrear cientos de métodos, así que realmente no puede cambiar cada uno de ellos. ¿No hay una forma de controlar la ejecución de un programa Java para ver los métodos que se están ejecutando? Sé que puedo usar NetBeans para rastrear el valor de una variable, ¿qué ocurre con los métodos que se han ejecutado? – jSherz

+2

Eche un vistazo a [este artículo] (http://mathewjhall.wordpress.com/2011/03/31/tracing-java-method-execution-with-aspectj/) – Amadan

0

Puede utilizar @Loggable anotación de jcabi-aspects, que envuelve todos los métodos que desea depurar con un simple mecanismo de registro:

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

Registra a través de SLF4J.

Cuestiones relacionadas