2011-12-02 16 views
6

Configuré el registro en mi aplicación Play Framework. Cuando ejecuto la aplicación en el modo prod o dev o ejecuto la prueba por comand (prueba de reproducción), todo funciona bien, pero la prueba no puede ejecutarse cuando ejecuto su "prueba automática de reproducción". ¡Por favor ayuda!Registro de configuración en Play Framework al iniciar la autoprueba

en application.conf:

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> 

Cuando utilizo el siguiente archivo de 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>  

pruebas de ejecutar el comando play' auto-test 'ejecutado con éxito. Indique cómo configurar el registro en Play (salida a archivo) que se ejecuta y ejecuta pruebas en 'play auto-test'.

Respuesta

1

Thi es más o menos un juego! error. No es causado por el hecho de que haya configurado log4j con un archivo separado, aunque al hacerlo se ocultará otro mensaje de error: "play.tmp es nulo cuando debería ser play.tmp = none" (algo a su gusto: usted) Obtendré esto si elimina su archivo custon log4j.xml y vuelve a hacer "play auto-test". El problema es que incluso si configura eso para play.tmp = none, no funcionará. Además, si se compara su documentación en línea para jugar 's salida de la consola que ya se dará cuenta de que mal de algo:

Los documentos dicen:

"La '! Auto-test' comando hace lo mismo que el' test 'command, pero inicia automáticamente un navegador, ejecuta todas las pruebas y se detiene ".

consola EFS (cuando lo hace "juego de auto-test"):

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

La respuesta fue muy simple

en 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

Hola Ivan, bienvenido a stackoverflow. No está mal responder sus propias preguntas, especialmente si cree que alguien se beneficia de ellas. ¿Podrías, sin embargo, resumir rápidamente lo que hiciste? Simplemente somos simples mortales y no leemos XML como nuestro lenguaje base. ¿Tuviste dos archivos de configuración de Apache, uno en formato XML y otro en propiedad y el que fue seleccionado como el incorrecto? –