【问题标题】:Using custom logging filter with LoggingFeature for Jersey Client.为 Jersey 客户端使用带有 LoggingFeature 的自定义日志过滤器。
【发布时间】:2017-12-28 21:35:26
【问题描述】:

我正在使用 Jersey 2.22。我已经注册了一个LoggingFeature,它根据我设置的详细程度记录请求、响应、标头、有效负载等,但是我想实现我自己的自定义日志过滤器,该功能将使用该过滤器。

查看LoggingFeature 的来源,看来这是不可能的。这似乎很不灵活。使用以前版本的 Jersey,实现 LoggingFilter 并在客户端上注册它非常简单。

我真的很想实现我自己的ClientLoggingFilter 版本,这样我就可以在我的日志中写出简洁的一行。

有什么建议吗?该文档缺少 IMO。 https://jersey.github.io/documentation/latest/logging_chapter.html#d0e15744

【问题讨论】:

  • 您的问题非常广泛,您能否更具体一点,您希望记录什么以及使用什么,代码显示您已经尝试过的内容怎么样?
  • 我没有尝试过任何事情,因为据我所知,您无法像使用 LoggingFilter 那样扩展/实现您自己的响应过滤器,因为 LoggingFeature 挡住了路。我想以与默认过滤器日志相同的方式记录请求/响应的各个方面,但希望它的格式符合我的需要。我可以显示我如何注册有效的日志记录功能的代码,但在那之后我看不到前进的道路。我想我错过了一些东西。
  • 您能否更详细地解释您希望根据需要格式化日志消息的含义?
  • 基本上,我想扩展 LoggingFeature,就像我们在 Jersey 1.x 中扩展 LoggingFilter 一样。这两个类都实现了 ClientRequest/ResponseFilters,这意味着它们可以访问原始请求和响应对象。诸如标头、状态、有效负载、响应时间等之类的东西。如果您熟悉 Jersey 中的 LoggingFilter/Feature,这很常见。
  • 我已经发布了类似问题的解决方案,链接:stackoverflow.com/questions/40171273/…

标签: java jersey jersey-2.0 jersey-client


【解决方案1】:

我的解决方案是实现我自己的 LoggingFeature 版本,并注入自定义请求/响应容器。在容器中,我做了我们需要的准确记录。

似乎倒退了一步,无法实现简单的过滤器并将其应用于客户端以进行自定义日志记录之类的事情。

【讨论】:

猜你喜欢
  • 2016-09-24
  • 2018-05-22
  • 2018-02-09
  • 1970-01-01
  • 2016-10-02
  • 2015-08-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多