Finally I've chosen the following solution :
I've created an isolated xml file :
Code:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id="debugAdvisor"
class="aop.debug.LoggerEntreeSortieInterceptor"
lazy-init="true" />
<bean id="proxyCreator"
class="aop.debug.LoggerEntreeSortieAutoProxyCreator"
lazy-init="true">
<property name="interceptorNames">
<list>
<value>debugAdvisor</value>
</list>
</property>
<property name="beanNames">
<list>
<value>*</value>
</list>
</property>
</bean>
</beans>
with :
- LoggerEntreeSortieInterceptor (and now you know i'm french) extending Spring Framework's DebugInterceptor to customize how input/output data are logged.
- LoggerEntreeSortieAutoProxyCreator extending BeanNameAutoProxyCreator reimplementing isMatch to decide which beans i want to be proxied and which ones i don't want to be proxied
Then i just have to comment/decomment the "<import resource="" />" line in my main Spring config file to deactivate/activate the logging of input and output parameters without any change in my code.
Of course, the limitation is that this only works for interface's methods and not for every method of every object in my application (although this can be achieved quite easily but only with setter injection because of the following bug : http://opensource2.atlassian.com/pro...nQqrM?page=all) but it has already turned out to be pretty useful.