Вам нужен пользовательский Feature
, чтобы регистрировать только ошибки / исключения SOAP.
Ниже приведен исходный код метода LoggingFeature.initializeProvider()
.Как видите, внутри этого метода добавляются перехватчики ошибок.
@Override
protected void initializeProvider(InterceptorProvider provider, Bus bus) {
if (limit == DEFAULT_LIMIT && inLocation == null
&& outLocation == null && !prettyLogging) {
provider.getInInterceptors().add(IN);
>>> provider.getInFaultInterceptors().add(IN);
provider.getOutInterceptors().add(OUT);
>>> provider.getOutFaultInterceptors().add(OUT);
} else {
LoggingInInterceptor in = new LoggingInInterceptor(limit);
in.setOutputLocation(inLocation);
in.setPrettyLogging(prettyLogging);
in.setShowBinaryContent(showBinary);
LoggingOutInterceptor out = new LoggingOutInterceptor(limit);
out.setOutputLocation(outLocation);
out.setPrettyLogging(prettyLogging);
out.setShowBinaryContent(showBinary);
provider.getInInterceptors().add(in);
provider.getInFaultInterceptors().add(in);
provider.getOutInterceptors().add(out);
provider.getOutFaultInterceptors().add(out);
}
}
Вы можете написать свой собственный LoggingFeature
и переопределить initializeProvider
следующим образом:
public class CustomLoggingFeature extends LoggingFeature {
@Override
protected void initializeProvider(InterceptorProvider provider, Bus bus) {
provider.getInFaultInterceptors().add(new LoggingInInterceptor(getLimit()));
provider.getOutFaultInterceptors().add(new LoggingOutInterceptor(getLimit()));
}
}
Тогда выможет активировать CustomLoggingFeature
следующим образом:
@WebService
@Features(classes = {CustomLoggingFeature.class})
public interface AssetServices {
}