繁体   English   中英

如何禁用 Jersey Client 2.x 中的日志记录?

[英]How to disable logging in Jersey Client 2.x?

我在使用 Jersey 客户端 (2.25.1) 调用服务端点的测试中运行了一个简单的 Dropwizard (1.2.0) Web 服务。 对于每个请求,我都会在控制台上获得一个日志条目,例如:

127.0.0.1 - - [25/Oct/2017:21:17:10 +0000] "GET /query?name=John+Doe+1 HTTP/1.1" 200 48 "-" "Jersey/2.25.1 (HttpUrlConnection 1.8.0_92)" 84
127.0.0.1 - - [25/Oct/2017:21:17:10 +0000] "GET /query?name=John+Doe+2 HTTP/1.1" 200 48 "-" "Jersey/2.25.1 (HttpUrlConnection 1.8.0_92)" 84
127.0.0.1 - - [25/Oct/2017:21:17:10 +0000] "GET /query?name=John+Doe+0 HTTP/1.1" 200 48 "-" "Jersey/2.25.1 (HttpUrlConnection 1.8.0_92)" 84

我想禁用这些日志条目打印在控制台上,因为它们使我的输出变得混乱。 我假设他们来自泽西岛的客户? 我错了吗? 所以我在创建我的客户端时尝试禁用它,如下所示:

ClientConfig clientConfig = new ClientConfig();
clientConfig.property(LOGGING_FEATURE_LOGGER_LEVEL_CLIENT, Level.OFF);
Client client = ClientBuilder.newClient(clientConfig);
return client;

但这没有任何效果 - 日志条目仍然在控制台上转储。

如何禁用这些日志条目?

它们是由 dropwizard 服务器打印的请求日志。 如果您只是不想将它们打印在控制台上,您可以将它们记录到文件中。 在您的测试 yaml 配置文件中的server:属性下添加以下配置。

requestLog:
    timeZone: UTC
    appenders:
      - type: file
        currentLogFilename: /var/log/request.log
        threshold: ALL

你也可以通过在你的测试配置中不指定 appender 来禁用它。

requestLog:
   appenders: []

我认为您可能需要转到主应用程序类并找到记录器连接到 Jersey 环境的位置。 该行应如下所示:

environment.jersey().register(new LoggingFeature(...));

尝试删除/注释该行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM