我遇到了正确禁用所有HtmlUnit日志记录的问题。我甚至不确定信息的来源。
项目代码在github上都存在HERE。
我看到控制台输出如:
HtmlTextInput[<input type="text" class="text_" name="j_username" id="username">] -> HtmlHtml[<html lang="en" class="no-js ie8">]
我已经阅读了HtmlUnit文档的日志记录部分,我已经简化为以下内容,它会删除除上面列出的HtmlTextInput日志之外的所有内容。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd" >
<log4j:configuration>
<appender name="NULL" class="org.apache.log4j.varia.NullAppender" />
<appender name="stdout" class="org.apache.log4j.ConsoleAppender">
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{ABSOLUTE} %5p %c{1}:%L - %m%n" />
</layout>
</appender>
<logger name="com.gargoylesoftware">
<level value="OFF" />
<appender-ref ref="NULL" />
</logger>
<root>
<priority value="warn" />
<appender-ref ref="NULL" />
</root>
</log4j:configuration>
我的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
我的Pom文件包含:
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.15</version>
<scope>test</scope>
</dependency>
此外,我尝试过以下地方列出的建议:
http://htmlunit.sourceforge.net/logging.html
http://alexcuesta.wordpress.com/2011/05/11/turning-off-htmlunit-driver-logging-messages/
感谢任何帮助。
答案 0 :(得分:3)
我发现了答案。事实证明,这是selenium 2.33以及它如何与HtmlUnitDriver一起使用的问题,因为有人留在HtmlUnitDriver.java中的硬编码System.err。
适当的解决方法是升级到更新版本的Selenium。