Play Framework 2.2日志输出到测试控制台

ree*_*een 14 logging playframework-2.0

如何在Play Framework 2.2中配置记录器,以便在播放集成测试期间在控制台中看到日志输出?

Play Framework 2.1的配置不再起作用.

BR Rene

adi*_*dis 18

我还没有这样做,但你必须配置一个logback配置文件.有关其他信息,请参阅播放文档:http://www.playframework.com/documentation/2.2.x/SettingsLogger

一旦定义了特定的logback配置文件,就需要将其放在测试包中,有关详细信息,请参阅此问题:https://github.com/playframework/playframework/issues/1669#issuecomment-24452132

请参阅来自@benmccann的消息:您可以通过在test/resources中放置logback-test.xml来配置测试模式下的记录器(花了我几个小时才弄明白!).


rai*_*tin 6

更新要了解有关如何配置logback的更多信息,您应该将-Dlogback.debug=true属性传递给jvm/play.这可能会节省你几个小时的诽谤.

添加一个文件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>
Run Code Online (Sandbox Code Playgroud)

  • 作为旁注,$ {application.home}没有为播放单元测试定义,所以如果你创建一个虚假的应用程序就可以进行播放集成测试,但是对于单元测试,没有定义变量,因此会创建日志文件在<play_project_folder> /application.home_IS_UNDEFINED/logs/application.log上(在游戏2.3.6上测试) (3认同)