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

时间:2017-10-25 21:30:02

标签: java jersey-2.0 dropwizard jersey-client

我使用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;

但是这没有效果 - 日志条目仍然被转储到控制台上。

如何禁用这些日志条目?

2 个答案:

答案 0 :(得分:1)

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

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

您也可以通过在测试配置中指定如下所示的appender来禁用它。

requestLog:
   appenders: []

答案 1 :(得分:0)

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

function prizes(revolve,xPosition,yPosition,data,radius,size){ 
var j = 0;
// translate(x,y);
  push()
  rotate(revolve)

for(i = 0 ; i < TWO_PI ; i+=TWO_PI/data.length)
{
  let x = radius * cos(i);
  let y = radius * sin(i);

  fill(data[j])
  textSize(32);
  ellipse(x,y,size)
  j++;
  }

  pop() 
}

尝试删除/评论该行。