2013-09-25 38 views

回答

18

我还没有这样做,但你必须配置的logback配置文件。欲了解更多信息,播放文件:http://www.playframework.com/documentation/2.2.x/SettingsLogger

一旦你定义一个特定的logback的配置文件,这需要放置在测试包,看到这个问题的详细信息:https://github.com/playframework/playframework/issues/1669#issuecomment-24452132

见信息从@benmccann您可以通过在测试/资源中放置一个logback-test.xml来配置记录器处于测试模式(花费我数小时才能弄清楚!)。

6

更新要了解更多关于如何的logback配置应该-Dlogback.debug=true属性传递到JVM /播放。这可以为你节省数小时的时间。

添加在test/logback-test.xml文件(必须在类路径,以便它可能依赖于游戏应用程序的配置方式找到测试资源)与内容一样

<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

文件必须放置在conf /文件夹和播放将使用它。 – mrkinds

+3

作为一个方面说明,$ {application.home}没有为玩游戏单元测试定义,所以玩游戏集成测试可以创建一个假应用程序,但对于未定义变量的单元测试来说应该是可行的,因此日志文件将会是创建于 /application.home_IS_UNDEFINED/logs/application.log(在Play 2.3.6上测试) – mrkinds

+1

对于更一般的工作日志设置,可以使用缺省值语法“: - ”进行logback变量替换:$ { application.home: - 。}文档:http://logback.qos.ch/manual/configuration.html#defaultValuesForVariables – Sam