我想在使用HtmlUnit时禁止Apache的HttpClient的某些日志。我正在使用HtmlUnit 2.27和JDK日志记录。每当我将'org.apache.http.wire'的级别显式设置为Off时,HtmlUnit会将级别重置为null。
例如:
//turn on all logging
for(java.util.logging.Handler item : Logger.getLogger("").getHandlers()) {
item.setLevel(java.util.logging.Level.ALL);
}
Logger.getLogger("").setLevel(java.util.logging.Level.FINE);
//suppress apache logs
java.util.logging.Logger.getLogger("org.apache.http.wire").setLevel(java.util.logging.Level.OFF);
//CloseableHttpClient httpclient = HttpClients.createDefault();
(new WebClient()).getPage("https://publicobject.com/helloworld.txt");
System.out.println("org.apache.http.wire=" + java.util.logging.Logger.getLogger("org.apache.http.wire").getLevel());
返回:
org.apache.http.wire=null
如果我直接使用Apache HttpClient或在HtmlUnit之前引用Apache HttpClient(即取消注释CloseableHttpClient行),则会禁止日志记录并返回输出:
org.apache.http.wire=OFF
关于如何压制“org.apache.http.wire”的任何想法都没有在HtmlUnit之前引用CloseableHttpClient而没有我的hack?
答案 0 :(得分:0)
简单修复:不要使用java.util.logging。一旦我切换公共登录使用log4j,一切都按预期工作。我认为这是java.util.logging和HtmlUnit的错误......