Как я могу разрешить журналы CXF для конкретного метода в моем сервисе SOAP? - PullRequest
0 голосов
/ 07 сентября 2018

У меня есть клиентское обслуживание 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 журналов.

Возможно ли это сделать, и если да, то как?

...