我使用
HtmlUnit与通过Ajax与服务器交互的网页进行交互. Ajax代码启动后不久,HtmlUnit生成这两个日志消息:
WARNING: Ignoring XMLHttpRequest.setRequestHeader for Content-length: it is a restricted header Mar 3,2011 3:32:47 PM com.gargoylesoftware.htmlunit.javascript.host.xml.XMLHttpRequest jsxFunction_setRequestHeader WARNING: Ignoring XMLHttpRequest.setRequestHeader for Connection: it is a restricted header Mar 3,2011 3:32:47 PM com.gargoylesoftware.htmlunit.javascript.host.xml.XMLHttpRequest jsxGet_status
…接下来这个消息,重复六次:
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
我不知道如何关闭这些消息.通过代码的描绘显示,它们是通过直接调用记录器生成的,而不是通过处理程序对象来生成,我可以提供一个无事务的实现,就像我已经为CSS错误所做的那样. HtmlUnit logging page表示添加此代码应该可以工作:
System.getProperties().put("org.apache.commons.logging.simplelog.defaultlog","fatal");
…但没有效果.我还尝试添加以下选项,我调用java:
-Dorg.apache.commons.logging.simplelog.defaultlog=fatal
…但也没有效果.
我想我可以在这个代码执行时将stderr重定向到/ dev / null,但是可以使用更少的hacky解决方案?
解决方法
我也有这个问题
答案取决于在引擎盖下使用的日志记录系统. (因为通用日志记录只是一个包装).请参阅以下内容
http://commons.apache.org/proper/commons-logging/guide.html#Configuring_The_Underlying_Logging_System
答案取决于在引擎盖下使用的日志记录系统. (因为通用日志记录只是一个包装).请参阅以下内容
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,因此默认为.
为了消除所有这些的随机性,您可以自己明确地设置记录器.在类路径中创建一个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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。