这花了我很长时间才弄清楚。我在问这个问题,所以我可以为其他人回答:
如何从 CXF Rest Client 获得有用的日志信息?EG:url、params、payload、response等。
注意:这个问题已经存在,但它询问的是 CXF 和 Resteasy。我只想要 CXF 的答案:Logging in CXF and RestEasy clients
这花了我很长时间才弄清楚。我在问这个问题,所以我可以为其他人回答:
如何从 CXF Rest Client 获得有用的日志信息?EG:url、params、payload、response等。
注意:这个问题已经存在,但它询问的是 CXF 和 Resteasy。我只想要 CXF 的答案:Logging in CXF and RestEasy clients
以下是使用 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());
使用来自 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()