首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java HttpClient -减少调试输出

Java HttpClient -减少调试输出
EN

Stack Overflow用户
提问于 2016-10-11 14:31:53
回答 1查看 1.2K关注 0票数 0

我需要加载测试我们一直在开发的应用程序,但是我们的控制台日志经常被大量输出。从以前的经验中,我了解到System.out.println( )是一个相对昂贵的操作,所以我想将打印减少到最低限度。

只有当应用程序尝试Http-post时,打印才会发生,但我们每秒要打印100多个。我们使用Apache的HttpClient 4.5.2和HttpCore 4.4.5。应用程序运行在Tomcat 7上。

我尝试过许多不同的解决方案:删除Tomcat阀门、设置Tomcat日志记录级别、设置-Djavax.net.debug=none,但似乎没有什么可以消除这种情况。有谁知道是什么导致了这些输出,我该如何关闭它们?

调试输出如下所示:

代码语言:javascript
复制
2016-10-11 15:24:42,942 DEBUG [http-bio-8080-exec-3] Connection request: [route: {}->http://localhost:8080][total kept alive: 0; route allocated: 0 of 200; total allocated: 0 of 200]
2016-10-11 15:24:42,956 DEBUG [http-bio-8080-exec-3] Connection leased: [id: 0][route: {}->http://localhost:8080][total kept alive: 0; route allocated: 1 of 200; total allocated: 1 of 200]
2016-10-11 15:24:42,958 DEBUG [http-bio-8080-exec-3] Connecting to localhost:8080
2016-10-11 15:24:42,978 DEBUG [http-bio-8080-exec-3] CookieSpec selected: best-match
2016-10-11 15:24:42,994 DEBUG [http-bio-8080-exec-3] Auth cache not set in the context
2016-10-11 15:24:42,995 DEBUG [http-bio-8080-exec-3] Target auth state: UNCHALLENGED
2016-10-11 15:24:42,996 DEBUG [http-bio-8080-exec-3] Proxy auth state: UNCHALLENGED
2016-10-11 15:24:42,996 DEBUG [http-bio-8080-exec-3] Attempt 1 to execute request
2016-10-11 15:24:42,997 DEBUG [http-bio-8080-exec-3] Sending request: POST /XtService/account/getbalance HTTP/1.1
2016-10-11 15:24:42,997 DEBUG [http-bio-8080-exec-3] >> "POST /XtService/account/getbalance HTTP/1.1[\r][\n]"
2016-10-11 15:24:42,999 DEBUG [http-bio-8080-exec-3] >> "Content-Length: 48[\r][\n]"
2016-10-11 15:24:42,999 DEBUG [http-bio-8080-exec-3] >> "Content-Type: application/x-www-form-urlencoded; charset=UTF-8[\r][\n]"
2016-10-11 15:24:43,000 DEBUG [http-bio-8080-exec-3] >> "Host: localhost:8080[\r][\n]"
2016-10-11 15:24:43,000 DEBUG [http-bio-8080-exec-3] >> "Connection: Keep-Alive[\r][\n]"
2016-10-11 15:24:43,000 DEBUG [http-bio-8080-exec-3] >> "User-Agent: Apache-HttpClient/4.2 (java 1.5)[\r][\n]"
2016-10-11 15:24:43,000 DEBUG [http-bio-8080-exec-3] >> "[\r][\n]"
2016-10-11 15:24:43,001 DEBUG [http-bio-8080-exec-3] >> POST /XtService/account/getbalance HTTP/1.1
2016-10-11 15:24:43,001 DEBUG [http-bio-8080-exec-3] >> Content-Length: 48
2016-10-11 15:24:43,001 DEBUG [http-bio-8080-exec-3] >> Content-Type: application/x-www-form-urlencoded; charset=UTF-8
2016-10-11 15:24:43,001 DEBUG [http-bio-8080-exec-3] >> Host: localhost:8080
2016-10-11 15:24:43,001 DEBUG [http-bio-8080-exec-3] >> Connection: Keep-Alive
2016-10-11 15:24:43,001 DEBUG [http-bio-8080-exec-3] >> User-Agent: Apache-HttpClient/4.2 (java 1.5)
2016-10-11 15:24:43,001 DEBUG [http-bio-8080-exec-3] >> "categoryid=2"
2016-10-11 15:24:43,256 DEBUG [http-bio-8080-exec-3] << "HTTP/1.1 200 OK[\r][\n]"
2016-10-11 15:24:43,259 DEBUG [http-bio-8080-exec-3] << "Server: Apache-Coyote/1.1[\r][\n]"
2016-10-11 15:24:43,260 DEBUG [http-bio-8080-exec-3] << "Pragma: no-cache[\r][\n]"
2016-10-11 15:24:43,260 DEBUG [http-bio-8080-exec-3] << "Cache-Control: no-cache[\r][\n]"
2016-10-11 15:24:43,260 DEBUG [http-bio-8080-exec-3] << "Expires: Thu, 01 Jan 1970 00:00:00 GMT[\r][\n]"
2016-10-11 15:24:43,261 DEBUG [http-bio-8080-exec-3] << "Content-Type: application/json;charset=utf-8[\r][\n]"
2016-10-11 15:24:43,261 DEBUG [http-bio-8080-exec-3] << "Content-Length: 83[\r][\n]"
2016-10-11 15:24:43,261 DEBUG [http-bio-8080-exec-3] << "Date: Tue, 11 Oct 2016 13:24:43 GMT[\r][\n]"
2016-10-11 15:24:43,261 DEBUG [http-bio-8080-exec-3] << "[\r][\n]"
2016-10-11 15:24:43,262 DEBUG [http-bio-8080-exec-3] Receiving response: HTTP/1.1 200 OK
2016-10-11 15:24:43,262 DEBUG [http-bio-8080-exec-3] << HTTP/1.1 200 OK
2016-10-11 15:24:43,263 DEBUG [http-bio-8080-exec-3] << Server: Apache-Coyote/1.1
2016-10-11 15:24:43,263 DEBUG [http-bio-8080-exec-3] << Pragma: no-cache
2016-10-11 15:24:43,263 DEBUG [http-bio-8080-exec-3] << Cache-Control: no-cache
2016-10-11 15:24:43,263 DEBUG [http-bio-8080-exec-3] << Expires: Thu, 01 Jan 1970 00:00:00 GMT
2016-10-11 15:24:43,263 DEBUG [http-bio-8080-exec-3] << Content-Type: application/json;charset=utf-8
2016-10-11 15:24:43,263 DEBUG [http-bio-8080-exec-3] << Content-Length: 83
2016-10-11 15:24:43,263 DEBUG [http-bio-8080-exec-3] << Date: Tue, 11 Oct 2016 13:24:43 GMT
2016-10-11 15:24:43,265 DEBUG [http-bio-8080-exec-3] Connection can be kept alive for 10000 MILLISECONDS
2016-10-11 15:24:43,274 DEBUG [http-bio-8080-exec-3] << "{"status":1,"data":{"RESERVED":569.81}}"
2016-10-11 15:24:43,275 DEBUG [http-bio-8080-exec-3] Connection [id: 0][route: {}->http://localhost:8080] can be kept alive for 10000 MILLISECONDS
2016-10-11 15:24:43,275 DEBUG [http-bio-8080-exec-3] Connection released: [id: 0][route: {}->http://localhost:8080][total kept alive: 1; route allocated: 1 of 200; total allocated: 1 of 200]
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-11 18:43:22

您可以看看:http://hc.apache.org/httpcomponents-client-ga/logging.html

因此,HttpClient利用Commons包提供的日志接口。Commons为各种日志包提供了一个简单和通用的日志接口。通过使用公用日志记录,可以为各种不同的日志记录行为配置HttpClient。这意味着用户必须选择使用哪个日志框架。默认情况下,Commons支持以下日志记录框架: - Log4J - java.util.logging - SimpleLog (共用日志的内部)

您所观察到的绝大多数输出实际上是“连线”日志记录(即实际的HTTP交易):

连线日志用于记录在执行HTTP请求时发送到服务器和从服务器发送的所有数据。连线日志使用org.apache.http.wire日志记录类别。此日志只能用于调试问题,因为它将产生大量日志数据。

简单地说:找到使用了哪个日志实现(例如log4J ?),找到它的配置文件,并减少org.apache.http(.wire)类别。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39979702

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档