如何抑制htmlunit(Java库)警告/错误消息?

时间:2017-03-24 09:44:00

标签: java logging htmlunit java.util.logging

我正在使用htmlunit [http://htmlunit.sourceforge.net/]并且它会发出一堆警告/错误:

  

2017年3月24日下午6:37:30 com.gargoylesoftware.htmlunit.IncorrectnessListenerImpl notify   警告:遇到过时的内容类型:'text / javascript'。   2017年3月24日下午6:37:31 com.gargoylesoftware.htmlunit.html.InputElementFactory createElementNS   信息:错误的输入类型:“datetime”,创建文本输入   2017年3月24日下午6:37:31 com.gargoylesoftware.htmlunit.IncorrectnessListenerImpl notify   警告:遇到过时的内容类型:'application / x-javascript'。   2017年3月24日下午6:37:32 com.gargoylesoftware.htmlunit.IncorrectnessListenerImpl notify   警告:遇到过时的内容类型:'application / x-javascript'。   2017年3月24日下午6:37:34 com.gargoylesoftware.htmlunit.IncorrectnessListenerImpl notify   警告:遇到过时的内容类型:'text / javascript'。   2017年3月24日下午6:37:34 com.gargoylesoftware.htmlunit.javascript.StrictErrorReporter runtimeError   严重:runtimeError:message = [指定了无效或非法选择器(选择器:'*,:x'错误:无效选择器:: x)。] sourceName = [https://www.example.com/bundles/jquery?v=u8J3xxyrazUhSJl-OWRJ6I82HpC6Fs7PQ0-l8XzoZXY1] line = [1] lineSource = [null ] lineOffset = [0]   2017年3月24日下午6:37:35 com.gargoylesoftware.htmlunit.IncorrectnessListenerImpl notify   警告:遇到过时的内容类型:'text / javascript'。   2017年3月24日下午6:37:35 com.gargoylesoftware.htmlunit.IncorrectnessListenerImpl notify   警告:遇到过时的内容类型:'text / javascript'。   2017年3月24日下午6:37:35 com.gargoylesoftware.htmlunit.IncorrectnessListenerImpl notify   警告:遇到过时的内容类型:'text / javascript'。   2017年3月24日下午6:37:36 com.gargoylesoftware.htmlunit.IncorrectnessListenerImpl notify   警告:遇到过时的内容类型:'text / javascript'。   2017年3月24日下午6:37:43 com.gargoylesoftware.htmlunit.javascript.host.dom.Document createElement   INFO:createElement:提供字符串'iframe name =“rufous-frame-29_-1”> https://platform.twitter.com/widgets.js] line = [9] lineSource = [null] lineOffset = [0]

我查看了其他资源并试图通过以下方式将其关闭:

    Logger.getLogger("com.gargoylesoftware.htmlunit").setLevel(Level.OFF);
    Logger.getLogger("org.apache.http").setLevel(Level.OFF);

        final WebClient webClient = new WebClient(BrowserVersion.EDGE);

不起作用

还可以采取哪些措施来抑制这些警告/错误消息?

2 个答案:

答案 0 :(得分:2)

如果您未将记录器设置为'logging.properties'文件中的OFF,则在将级别设置为OFF之前需要pin the loggers with a hard reference

以下是基于您的代码的更正示例:

private static final Logger[] PINNED_LOGGERS;
static {
    System.setProperty("org.apache.commons.logging.simplelog.defaultlog", "fatal");
    PINNED_LOGGERS = new Logger[]{
        Logger.getLogger("com.gargoylesoftware.htmlunit"),
        Logger.getLogger("org.apache.http")
    };

    for (Logger l : PINNED_LOGGERS) {
        l.setLevel(Level.OFF);
    }
}

答案 1 :(得分:0)

我在应用程序的开头添加了以下内容并且错误/警告已停止:

System.getProperties().put("org.apache.commons.logging.simplelog.defaultlog", "fatal");
Logger.getLogger("com.gargoylesoftware.htmlunit").setLevel(Level.OFF);
Logger.getLogger("org.apache.http").setLevel(Level.OFF);