gpt4 book ai didi

logging - 无法关闭 HtmlUnit 日志消息

转载 作者:行者123 更新时间:2023-12-03 21:07:37 27 4
gpt4 key购买 nike

我正在使用 HtmlUnit 与通过 Ajax 与服务器交互的网页进行交互。在 Ajax 代码启动后不久,HtmlUnit 会生成以下两条日志消息:

WARNING: Ignoring XMLHttpRequest.setRequestHeader for Content-length: it is a restricted headerMar 3, 2011 3:32:47 PM com.gargoylesoftware.htmlunit.javascript.host.xml.XMLHttpRequest jsxFunction_setRequestHeaderWARNING: Ignoring XMLHttpRequest.setRequestHeader for Connection: it is a restricted headerMar 3, 2011 3:32:47 PM com.gargoylesoftware.htmlunit.javascript.host.xml.XMLHttpRequest jsxGet_status

...Followed by this message, repeated six times:

SEVERE: XMLHttpRequest.status was retrieved before the response was available.Mar 3, 2011 3:32:47 PM com.gargoylesoftware.htmlunit.javascript.host.xml.XMLHttpRequest jsxGet_status

I can't figure out how to turn these messages off. Trawling through the code shows that they're produced by direct calls to a logger, not via a handler object that I could provide a do-nothing implementation for, as I already do for CSS errors. The HtmlUnit logging page indicates that adding this code should work:

System.getProperties().put("org.apache.commons.logging.simplelog.defaultlog", "fatal");

……但是没有效果。我还尝试在调用 java 的地方添加以下选项:
-Dorg.apache.commons.logging.simplelog.defaultlog=fatal

……但这也没有效果。

我想我可以在执行此代码时将 stderr 重定向到/dev/null,但是有没有更简单的解决方案可用?

最佳答案

我也有这个问题..
答案取决于在幕后使用的日志系统 commons-logging。 (因为 common-logging 只是一个包装器)。请参阅以下内容
http://commons.apache.org/proper/commons-logging/guide.html#Configuring_The_Underlying_Logging_System

您上面提到的属性 (org.apache.commons.logging.simplelog.defaultlog) 仅在使用简单记录器时才有效。如果您在 JDK 1.4 或更高版本上运行,那么它应该默认使用 JDK 日志记录。在这种情况下,它默认使用来自 JRE 安装位置的 lib/logging.properties。

在我的情况下,我在类路径中有 Log4j,所以它默认为。

要消除所有这些的随机性,您可以自己明确设置 Logger。在类路径中创建一个 commons-logging.properties 文件并传入记录器以使用例如

# JDK Logging
#org.apache.commons.logging.Log=org.apache.commons.logging.impl.Jdk14Logger
# Log4j logging (also required log4j.jar to be in classpath)
org.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JLogger

对于 log4j,添加以下 log4j.properties 会停止来自 HtmlUnit 的警告。
log4j.logger.com.gargoylesoftware.htmlunit=ERROR

关于logging - 无法关闭 HtmlUnit 日志消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5188118/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com