如何禁用 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;
但这没有任何效果 - 日志条目仍然转储到控制台上。
如何禁用这些日志条目?
我认为您可能需要转到主应用程序 class 并找到记录器连接到 Jersey 环境的位置。该行应类似于:
environment.jersey().register(new LoggingFeature(...));
尝试 deleting/commenting 那一行。
它们是dropwizard服务器打印的请求日志。如果您只是不想在控制台上打印它们,您可以将它们记录到一个文件中。在您的测试 yaml 配置文件中的 server:
属性 下面添加以下配置。
requestLog:
timeZone: UTC
appenders:
- type: file
currentLogFilename: /var/log/request.log
threshold: ALL
您也可以通过在测试配置中指定没有附加程序来禁用它。
requestLog:
appenders: []
我 运行 在测试中使用 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;
但这没有任何效果 - 日志条目仍然转储到控制台上。
如何禁用这些日志条目?
我认为您可能需要转到主应用程序 class 并找到记录器连接到 Jersey 环境的位置。该行应类似于:
environment.jersey().register(new LoggingFeature(...));
尝试 deleting/commenting 那一行。
它们是dropwizard服务器打印的请求日志。如果您只是不想在控制台上打印它们,您可以将它们记录到一个文件中。在您的测试 yaml 配置文件中的 server:
属性 下面添加以下配置。
requestLog:
timeZone: UTC
appenders:
- type: file
currentLogFilename: /var/log/request.log
threshold: ALL
您也可以通过在测试配置中指定没有附加程序来禁用它。
requestLog:
appenders: []