禁止HtmlUnit Apache日志记录

时间:2017-07-27 20:38:15

标签: java apache htmlunit

我想在使用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?

1 个答案:

答案 0 :(得分:0)

简单修复:不要使用java.util.logging。一旦我切换公共登录使用log4j,一切都按预期工作。我认为这是java.util.logging和HtmlUnit的错误......