我花了很长时间才弄明白。我问这个问题所以我可以为别人回答:
如何从CXF Rest Client获取有用的日志信息? EG:网址,参数,有效载荷,响应等。
注意:这个问题已经存在,但是它询问了CXF和Resteasy。我只想要CXF的答案:Logging in CXF and RestEasy clients
答案 0 :(得分:11)
以下是使用CXF的方法:
import com.fasterxml.jackson.jaxrs.json.JacksonJaxbJsonProvider;
import org.apache.cxf.interceptor.LoggingInInterceptor;
import org.apache.cxf.interceptor.LoggingOutInterceptor;
import org.apache.cxf.jaxrs.client.ClientConfiguration;
import org.apache.cxf.jaxrs.client.WebClient;
import org.json.JSONException;
import org.json.JSONObject;
...
WebClient client = WebClient.create(endPoint, providers).accept(MediaType.APPLICATION_JSON).type(MediaType.APPLICATION_JSON);
ClientConfiguration config = WebClient.getConfig(client);
config.getInInterceptors().add(new LoggingInInterceptor());
config.getOutInterceptors().add(new LoggingOutInterceptor());
答案 1 :(得分:2)
使用CXF 3.1.x中的JAX-RS 2.0客户端我在使LoggingInInterceptor和LoggingOutInterceptor工作时遇到了一些麻烦。我更改为使用http://cxf.apache.org/docs/message-logging.html中描述的LoggingFeature,它首先尝试:
Client client = ClientBuilder.newBuilder().register(LoggingFeature.class).build()