使用 Apache 客户端时如何记录 Jersey 客户端请求

Posted

技术标签:

【中文标题】使用 Apache 客户端时如何记录 Jersey 客户端请求【英文标题】:How to log Jersey client request when using Apache client 【发布时间】:2021-06-23 03:51:36 【问题描述】:

我正在使用 jersey apache 连接器,因此我的 jersey 客户端使用 apache http 客户端:

<dependency>
    <groupId>org.glassfish.jersey.connectors</groupId>
    <artifactId>jersey-apache-connector</artifactId>
</dependency>

我这样初始化客户端:

ClientConfig conf = new ClientConfig().connectorProvider(new ApacheConnectorProvider());
Client client = ClientBuilder.newClient(conf);  

现在我希望能够通过在我的 logback-test.xml 中添加它来记录 http 流量:

<logger name="org.apache.http.wire" level="DEBUG" />

但是它没有记录任何东西,我错过了什么吗?

更新:好吧,当我的应用程序使用 slf4j + logback 时,我可能错过了 Jersey 使用 java.util.logging。所以我添加了一个带有相应conf的jul-to-slf4j桥,但仍然没有日志。

【问题讨论】:

【参考方案1】:

嗯,9 次浏览,*** 已经不是以前的样子了……

所以答案是:apache http 客户端级别的日志系统在与 jersey 一起使用时被禁用。您可以为 jersey 激活日志,但它与所有其他库不同,您必须显式注册一个“LoggingFeature”才能开始使用 jul 记录,然后桥就可以工作了。

【讨论】:

以上是关于使用 Apache 客户端时如何记录 Jersey 客户端请求的主要内容,如果未能解决你的问题,请参考以下文章

jersey NoClassDefFoundError:org / objectweb / asm / ClassVisitor异常

如何在 JAX-RS 客户端中记录请求正文

Jersey 2.x JDK 上的客户端应用

jersey+jetty+jdk8实现restful接口

jersey+jetty+jdk8实现restful接口

jersey+jetty+jdk8实现restful接口