2011-12-02 26 views
6

Kayıtlarımı, Play Framework uygulamamda yapılandırdım. Uygulamayı prod veya dev modunda çalıştırdığımda veya testi comand tarafından çalıştırdığımda (oynatma testi) - her şey iyi çalışıyor, ancak 'play auto-test' komutunu çalıştırdığımda test yürütülemiyor. Lütfen yardım et!Otomatik çerçeve testini başlatırken Oynatma Çerçevesi'nde yapılandırma yapılandırması

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> 

aşağıdaki log4j.xml dosyasını kullanmak:

<?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>  

testler komutunu çalıştırarak 'oyun dosyasına koyarak içinde

otomatik test 'başarıyla yürütülür. Lütfen 'play auto-test' deki testleri çalıştıran ve yürüttüğünüz Play'deki (çıktıdan dosyaya) kayıt yapılandırmasını nasıl yapılandıracağınızı belirtin!

cevap

1

Thi oldukça bir Oyun! böcek. Log4j'yi ayrı bir dosya ile yapılandırmış olmanızdan başka bir hata mesajını gizleyeceğinizden değil: "play.tmp, play.tmp = none olması gerektiğinde boştur" (buna benzeyen bir şey - sizsiniz) custon log4j.xml dosyanızı kaldırırsanız ve "auto-test play" i tekrar çalıştırırsanız bunu alırsınız. Sorun şu ki, eğer bunu play.tmp = 'e ayarlasanız bile, yine de çalışmayacaktır. Eğer kendi çevrimiçi belgeleri karşılaştırmak yanında, eğer Play 'ın konsol çıkış zaten bir şeylerin yanlış olduğunu fark edeceksiniz:

dokümanlar ki:

" '! otomatik testin' komutu daha aynı şeyi' 'komutu test edin, ancak otomatik olarak bir tarayıcı başlatır, tüm testleri çalıştırın ve durun.'

Konsol sais (siz "otomatik testini oynamak" ne zaman):

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

cevap çok basitti

dosyasına koyarak içinde

:

%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

Merhaba Ivan, stackoverflow'a hoş geldiniz. Kendi sorularınızı cevaplamak yanlış olmaz, özellikle de birisinin onlardan yararlandığını düşünüyorsanız. Ne yaptığını çabucak özetleyebilir misin? Biz sadece ölümlüleriz ve XML'i temel dilimiz olarak okumadık. İki Apache konfigürasyon dosyanız var, biri XML'de, biri de mülkiyet biçiminde ve yanlış olanı seçtiniz mi? –

İlgili konular