如何从CXF Rest Client获取日志?

时间:2015-01-10 00:33:36

标签: rest logging cxf cxf-client

我花了很长时间才弄明白。我问这个问题所以我可以为别人回答:

如何从CXF Rest Client获取有用的日志信息? EG:网址,参数,有效载荷,响应等。

注意:这个问题已经存在,但是它询问了CXF和Resteasy。我只想要CXF的答案:Logging in CXF and RestEasy clients

2 个答案:

答案 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()