Le 16 May 2002 Nicolas Delsaux a �crit :

> [...]
> setXXX la ligne logOperation(this, "..."); Et avec mes coll�gues, nous
> trouvons que �a va rajouter pas mal de lignes de code au programme.
> Est-il possible, dans ce genre de cas, d'utiliser la classe Proxy de
> java.lang.reflect pour ajouter, � l'ex�cution et pour les classes qui
> nous int�ressent, cette ligne de log, sans avoir bien s�r � modifier
> la m�thode de la classe d'un pouill�me ?
> 

Voici d'autres pistes, que j'ai jamais essay�, mais je serais curieux 
d'avoir des retours d'infos.

Il existe un java.lang.Runtime.traceMethodCalls(boolean), mais qui ne 
fonctionne pas avec toutes les JVM (c'est vraiment pratique ! ) Peut 
�tre qu'avec la v�tre ?...

Il existe aussi la JPDA (Java Platform Debugger Architecture), 
standard � partir de la 1.3, semble-t-il, ou un debogueur ext�rieur � 
une JVM peut s'y connecter � l'aide de diff�rentes combines. 
J'imagine qu'il pourrait tracer les appels de m�thode. Consulte la 
doc du JDK 1.3.

Enfin, toujours avec le jdk 1.3, le JVMPI (Java Virtual Machine 
Profiler Interface), � caract�re exp�rimental, me dit la doc. 
Exp�rimente, alors.

L'autre approche est de remettre en cause le 'pas changer la classe 
d'un pouill�me'. Etes-vous vraiment oblig�s, ou est-ce la peur de de 
rajouter x lignes de code ? Le syst�me des proxy permet-t-il 
d'arriver � un loguing aussi fin et souple que les outils � la log4j 
? Qu'est-ce qui vous inqui�te dans le fait de toucher aux classes 
existantes ?

A+.

--
Sur le Web, tout de suite.
Herve AGNOUX - diaam informatique
http://www.diaam-informatique.com

Répondre à