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) をクラスパスに追加すると、すべてが機能します。

于 2012-04-25T21:48:39.757 に答える
0

ここでは、2 つのロギング フレームワークを混同しています。

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

その定数は、java.util.logging (別名「JDK ロギング」) を構成するためのものです。

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 に答える