0

我想用 log4j 启​​动 selenium 服务器,以便所有与服务器相关的日志都到那里。我正在使用以下 ANT 目标启动带有 ANT 的服务器

<target name="startserver" depends="setClassPath">
<java jar="${test.home}/lib/selenium-server-standalone-2.20.0.jar"  fork="true">
<arg line="-Djava.util.logging.config.file=log4j.properties"/>
<arg line="-firefoxProfileTemplate 'D:\selenium.default'"/>
<arg line="-browserSideLog"/>
</java>
</target>    

我的 log4j.properties 如下:

log4j.rootLogger=INFO, R, stdout

log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=./logs/sellog.log
log4j.appender.R.MaxFileSize=10MB
log4j.appender.R.MaxBackupIndex=1
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n

但是从目标启动服务器后,我没有得到任何服务器日志。

另外,我有一个硒测试,我将日志扔到 log4j 中,如下所示:

private LogManager lm;
private Logger logger = lm.getLogger(this.getClass().getName());
logger.info("Selenium Client started...");

我在 log4j 日志中获取应用程序日志。

我想要的是在 log4j 日志中包含所有日志(硒服务器日志 + 应用程序日志)。

任何帮助是极大的赞赏。

4

2 回答 2

0

Selenium 使用slf4j,可以告诉它将日志数据发送到 log4j。但是您必须打开 JAR 清单并明确指定类路径和主类,而不是使用该-jar选项。然后将slf4j的log4j适配器jar(slf4j-log4j12-1.6.4.jar)添加到classpath,就可以了。

于 2012-04-25T21:48:39.757 回答
0

您在这里混合了两个日志框架:

java.util.logging.config.file=log4j.properties

该常量用于配置 java.util.logging,AKA 'JDK logging'。

您确定 Selenium Server 实际使用 log4j 吗?如果是这样,你应该有

log4j.configuration=log4j.properties

编辑:基于http://code.google.com/p/selenium/source/browse/trunk/java/server/src/org/openqa/selenium/server/log/LoggingManager.java,看起来它使用JDK日志记录,因此您不能(轻松)将其重定向到 log4j。

于 2012-04-25T12:10:43.700 回答