2013-09-25 10 views
13

Come configurare il logger in Play Framework 2.2 in modo da visualizzare l'output del registro nella console durante i test di integrazione di riproduzione?Riproduci log di Framework 2.2 in console nei test

La configurazione per Play Framework 2.1 non funziona più.

BR Rene

risposta

18

non l'ho ancora fatto, ma è necessario configurare un file di configurazione logback. Vedere la documentazione del gioco per ulteriori informazioni: http://www.playframework.com/documentation/2.2.x/SettingsLogger

Una volta che è stato definito un file di configurazione logback specifico, questo deve essere inserito nel pacchetto di prova, vedere questo problema per i dettagli: https://github.com/playframework/playframework/issues/1669#issuecomment-24452132

See messaggio dal @benmccann : è possibile configurare il logger in modalità test inserendo un logback-test.xml in test/risorse (mi ci sono volute ore per capirlo!).

6

Aggiornamento Per capire di più su come è configurato logback si dovrebbe passare -Dlogback.debug=true struttura al jvm/play. Questo potrebbe farti risparmiare ore di lavaggio.

Aggiungere un file in test/logback-test.xml (deve essere sul classpath quindi potrebbe dipendere da come l'applicazione gioco è configurato per trovare prove risorse) con un contenuto simile

<configuration> 

    <conversionRule conversionWord="coloredLevel" 
     converterClass="play.api.Logger$ColoredLevel" /> 

    <appender name="FILE" class="ch.qos.logback.core.FileAppender"> 
     <file>${application.home:-.}/logs/application.log</file> 
     <encoder> 
      <pattern>%date - [%level] - from %logger in %thread 
       %n%message%n%xException%n</pattern> 
     </encoder> 
    </appender> 

    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> 
     <encoder> 
      <pattern>%coloredLevel %logger{15} - %message%n%xException{5}</pattern> 
     </encoder> 
    </appender> 

    <logger name="play" level="INFO" /> 
    <logger name="application" level="INFO" /> 

    <root level="ERROR"> 
     <appender-ref ref="STDOUT" /> 
     <appender-ref ref="FILE" /> 
    </root> 

</configuration> 
+0

il file deve essere collocato nella conf/folder and play lo userà. – mrkinds

+3

Come nota a margine, $ {application.home} non è definito per i test delle unità di gioco, quindi sarebbe ok per i test di integrazione di gioco se si crea un'applicazione falsa, ma per i test di unità la variabile non è definita, quindi il file di registro sarebbe creato su /application.home_IS_UNDEFINED/logs/application.log (testato su Play 2.3.6) – mrkinds

+1

Per una configurazione di log di lavoro più generale, è possibile utilizzare la sintassi del valore predefinito ": -" per la sostituzione della variabile di logback: $ { application.home: -.} Documenti: http://logback.qos.ch/manual/configuration.html#defaultValuesForVariables – Sam