2011-12-02 8 views
6

私のPlay Frameworkアプリケーションでロギングを設定しました。私がprodまたはdevモードでアプリケーションを実行するか、comand(play test)でテストを実行すると、すべて正常に動作しますが、私は 'play auto-test'を実行するとテストを実行できません。助けてください!スタートアップ自動テスト時にPlay Frameworkにログインする設定

application.log=INFO 
application.log.path=/log4j.xml 

のlog4j.xml:

<?xml version="1.0" encoding="UTF-8" ?> 
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> 
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"> 
    <appender name="file" class="org.apache.log4j.RollingFileAppender"> 
     <param name="File" value="${application.path}/logs/application.log"/> 
     <param name="MaxFileSize" value="1MB"/> 
     <param name="MaxBackupIndex" value="100"/> 
     <layout class="org.apache.log4j.PatternLayout"> 
      <param name="ConversionPattern" value="%d{ABSOLUTE} %-5p ~ %m %n"/> 
     </layout> 
    </appender> 
<logger name="play"> 
    <level value="error"/> 
</logger> 
<root> 
    <priority value="error"/> 
    <appender-ref ref="file"/> 
</root> 
</log4j:configuration> 

私は、次のlog4j.xmlファイルを使用します。

<?xml version="1.0" encoding="UTF-8" ?> 
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> 
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"> 
    <appender name="console" class="org.apache.log4j.ConsoleAppender"> 
     <param name="Target" value="System.out"/> 
     <layout class="org.apache.log4j.PatternLayout"> 
      <param name="ConversionPattern" value="%m%n"/> 
     </layout> 
    </appender> 
<logger name="play"> 
    <level value="debug"/> 
</logger> 
<root> 
    <priority value="info"/> 
    <appender-ref ref="console"/> 
</root> 
</log4j:configuration>  

テストは、コマンドを実行する「をプレイapplication.confで

自動テスト 'が正常に実行されました。 'play auto-test'でテストを実行して実行するPlay(ファイルへの出力)のログインの設定方法を教えてください!

答えて

1

ThiはかなりPlayです!バグ。これは、別のファイルでlog4jを設定したことに起因するものではありませんが、別のエラーメッセージが表示されてしまいます。「play.tmp = noneのときはnullです。あなたのcuston log4j.xmlファイルを削除し、 "play auto-test"をやり直す場合は、これを取得します)。問題は、それをplay.tmp = noneに設定しても、まだ動作しないということです。 !あなたがプレイする彼らのオンラインドキュメントを比較した場合のほか、のコンソール出力をすでに何かが間違っていることを実現します:

ドキュメントは言う:

「『自動テスト』コマンドがより同じことを行います " test 'コマンドを実行しますが、自動的にブラウザを起動し、すべてのテストを実行して停止します。

(あなたは、 "自動テストをプレイ" ん)コンソール・サイス:

ATTENTION: You're running Play! in DEV mode 
~ 
~ Go to http://localhost:9000/@tests to run the tests 
~ 
1

答えはapplication.confに

非常に簡単だった:

%test.application.log=INFO 
%test.application.log.path=/log4j.xml 

application.log=INFO 
application.log.path=/log4j.properties 
application.log.system.out=off 

のlog4j.xml:

<?xml version="1.0" encoding="UTF-8" ?> 
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> 
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"> 
    <appender name="console" class="org.apache.log4j.ConsoleAppender"> 
     <param name="Target" value="System.out"/> 
     <layout class="org.apache.log4j.PatternLayout"> 
      <param name="ConversionPattern" value="%m%n"/> 
     </layout> 
    </appender> 
<logger name="play"> 
    <level value="debug"/> 
</logger> 
<root> 
    <priority value="info"/> 
    <appender-ref ref="console"/> 
</root> 
</log4j:configuration> 

log4j.properti es:

log4j.rootLogger=ERROR, Rolling 
log4j.logger.play=INFO 
log4j.appender.Rolling=org.apache.log4j.RollingFileAppender 
log4j.appender.Rolling.File=${application.path}/logs/application.log 
log4j.appender.Rolling.MaxFileSize=1MB 
log4j.appender.Rolling.MaxBackupIndex=100 
log4j.appender.Rolling.layout=org.apache.log4j.PatternLayout 
log4j.appender.Rolling.layout.ConversionPattern=%d{ABSOLUTE} %-5p ~ %m %n 
log4j.appender.Console=org.apache.log4j.ConsoleAppender 
log4j.appender.Console.layout=org.apache.log4j.PatternLayout 
log4j.appender.Console.layout.ConversionPattern=%d{ABSOLUTE} %-5p ~ %m%n 
+1

こんにちはIvan、ようこそstackoverflow。あなた自身の質問に答えるのは間違いではありません。しかし、あなたがしたことをすばやくまとめてもらえますか?私たちはただの人間であり、XMLを基本言語として読みません。あなたは2つのApache設定ファイルを持っていましたか?1つはXMLで、もう1つはプロパティ形式であり、間違ったものが選択されましたか? –

関連する問題