У меня есть клиентское обслуживание CXF:
@Bean(name = "SomeMessageExchangeClient")
public SomeMessageExchangePortType signingPortType() {
JaxWsProxyFactoryBean jaxWsProxyFactoryBean = new JaxWsProxyFactoryBean();
jaxWsProxyFactoryBean.setServiceClass(SomeMessageExchangePortType.class);
jaxWsProxyFactoryBean.setAddress(someServerUrl);
jaxWsProxyFactoryBean.getInInterceptors().add(new LoggingInInterceptor());
jaxWsProxyFactoryBean.getOutInterceptors().add(new LoggingOutInterceptor());
jaxWsProxyFactoryBean.getOutInterceptors().add(new FaultOutInterceptor());
jaxWsProxyFactoryBean.getOutInterceptors().add(new FaultOutInterceptor());
return (SomeMessageExchangePortType) jaxWsProxyFactoryBean.create();
}
Я добавляю и снимаю перехватчики, и это работает. Но теперь мне нужно отключить некоторые журналы.
могу отключить в логах - удалить LoggingInInterceptor
Я могу отключить логи - удалить LoggingOutInterceptor
Я могу изменить уровень журнала в logback.xml
:
<logger name="org.apache.cxf.services.SomeMessageExchangeClient.REQ_IN" level="ERROR" />
<logger name="org.apache.cxf.services.SomeMessageExchangeClient.RESP_IN" level="ERROR" />
<logger name="org.apache.cxf.services.SomeMessageExchangeClient.REQ_OUT" level="INFO" />-->
<logger name="org.apache.cxf.services.SomeMessageExchangeClient.RESP_OUT" level="INFO" />
Но все эти манипуляции меняют все журналы IN или OUT . Мне нужно отключить только OUT журналы для конкретного метода в моей службе SOAP. SomeMessageExchangeClient
имеет, например, 2 метода:
FirstResponse sendFirstRequest(FirstRequest firstRequest){}
SecondResponse sendSecondRequest(SecondRequest secondRequest){}
Мне нужно отключить журнал только для sendFirstRequest
и только для OUT журналов.
Возможно ли это сделать, и если да, то как?