我有CXF Soap客户服务:
@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 日志。对于我的SOAP服务中的特定方法,我只需要禁用 OUT 日志。 SomeMessageExchangeClient
例如有2种方法:
FirstResponse sendFirstRequest(FirstRequest firstRequest){}
SecondResponse sendSecondRequest(SecondRequest secondRequest){}
我只需要为sendFirstRequest
和OUT日志禁用日志。
是否可以这样做?如果可以,怎么办?