Nicolas Delsaux wrote: > Salut, je suis en train de me coltiner un problème de log assez peu évident > : dans notre futur logiciel, on souhaite pouvoir logger les opérations > arrivant sur quasiment n'importe quel objet, et de manière uniforme.
En version de production, en version de test ou en version de developpement ? > C'est-à-dire que dès qu'un setXXX est appelé, un log est écrit. Or, ce genre > de fonctionnalité implique d'ajouter dans chaque 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 ? L'utilisation des Proxies est possible mais je pense que ca doit ralentir un peu et que ca pose pas mal de contraintes sur le code. Je vois deux autres possibilites: 1) La plus efficace: generer les instructions de log (Alma ?) Source Java --*--> Source Java genere avec instr. log * cible detectant les instructions set() et ajoutant l'instruction log() en debut de methode. 2) Un peu plus complique mais independant de l'appli: utiliser JVMPI Ecrire un prog compatible jvmpi (profiler) qui log les entrees dans les methodes dont le nom commence par 'set', avec les parametres. Guillaume http://www.memoire.com/guillaume-desnoix/alma/