当调用HttpClient的API发送GET或POST请求时,总会在控制台中打印DEBUG信息,诸如:
......
13:28:46.648 [main] DEBUG org.apache.http.headers - http-outgoing-2 >> Content-Type: application/json;charset=UTF-8
13:28:46.648 [main] DEBUG org.apache.http.headers - http-outgoing-2 >> Content-Length: 251
13:28:46.648 [main] DEBUG org.apache.http.headers - http-outgoing-2 >> Host: 10.10.10.11:3000
13:28:46.648 [main] DEBUG org.apache.http.headers - http-outgoing-2 >> Connection: Keep-Alive
13:28:46.648 [main] DEBUG org.apache.http.headers - http-outgoing-2 >> User-Agent: Apache-HttpClient/4.5.13 (Java/1.8.0_361)
13:28:46.648 [main] DEBUG org.apache.http.headers - http-outgoing-2 >> Accept-Encoding: gzip,deflate......
通过调试以及根据网上的经验,如果是一个Java的main类中调试,则可直接在类中进行日志配置:
static {
// 屏蔽请求过程所有的debug日志
org.slf4j.Logger httpLogger = LoggerFactory.getLogger("org.apache.http");
((ch.qos.logback.classic.Logger) httpLogger).setLevel(Level.WARN);
}
上面的配置,是通过将所有以“org.apache.http”开头的日志级别提升为WARN,这样就可以间接的屏蔽掉DEBUG级别的日志。
也可以根据自己的需求定制其他方式:
static {
// 屏蔽请求过程所有的debug日志
org.slf4j.Logger httpLogger = LoggerFactory.getLogger("org.apache.http");
((ch.qos.logback.classic.Logger) httpLogger).setLevel(Level.WARN);
// 显示请求头的debug信息
org.slf4j.Logger httpHeaderLogger = LoggerFactory.getLogger("org.apache.http.headers");
((ch.qos.logback.classic.Logger) httpHeaderLogger).setLevel(Level.DEBUG);
// 显示请求过程的debug信息
org.slf4j.Logger httpWireLogger = LoggerFactory.getLogger("org.apache.http.wire");
((ch.qos.logback.classic.Logger) httpWireLogger).setLevel(Level.DEBUG);
}