Help!
Je veux utiliser Spring afin de logger mon programme en utilisant ces capacites AOP.
Or les seuls methodes loggées sont les methodes "top level" ,les methodes appeles dans les methodes "top level" ne sont pas
loggées.
Voici un example
J'ai la classe suivante:
Puis une classe
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 class A { public void m2() { //fais un truc } public void m1(); { //appel a m2() m2(); } }Dans ce cas l'appel a la methode m1 est bien loggé par contre dans cette methode l'appel a la méthode m2 n'est pas loggé.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 test( public static void main(String[] args) throws Exception { ApplicationContext context = new ClassPathXmlApplicationContext( new String[] {"SpringContext.xml"} ); A a = (A) context.getBean("beanA"); a.m1(); }
Si je fais a.m2() la ca fonctionne.
Mon springContext.xml
Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 <aop:config> <aop:pointcut id="servicePointcut" expression="execution( * *(..))"/> <aop:aspect id="loggingAspect" ref="monLogger"> <aop:before method="logMethodEntry" pointcut-ref="servicePointcut"/> </aop:aspect> </aop:config>
Y'a t'il un principe qui m'aurait echappe?Ou ma faconde faire?
D'avance merci.
Partager