如何在Play Framework 2.2中配置記錄器,以便在播放集成測試期間在控制檯中看到日誌輸出?Play Framework 2.2輸出到控制檯的測試
Play Framework 2.1的配置不再有效。
BR劉若英
如何在Play Framework 2.2中配置記錄器,以便在播放集成測試期間在控制檯中看到日誌輸出?Play Framework 2.2輸出到控制檯的測試
Play Framework 2.1的配置不再有效。
BR劉若英
我還沒有這樣做,但你必須配置的logback配置文件。欲瞭解更多信息,播放文件:http://www.playframework.com/documentation/2.2.x/SettingsLogger
一旦你定義一個特定的logback的配置文件,這需要放置在測試包,看到這個問題的詳細信息:https://github.com/playframework/playframework/issues/1669#issuecomment-24452132
見信息從@benmccann :您可以通過在測試/資源中放置一個logback-test.xml來配置記錄器處於測試模式(花費我數小時才能弄清楚!)。
更新要了解更多關於如何的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>
文件必須放置在conf /文件夾和播放將使用它。 – mrkinds
作爲一個方面說明,$ {application.home}沒有爲玩遊戲單元測試定義,所以玩遊戲集成測試可以創建一個假應用程序,但對於未定義變量的單元測試來說應該是可行的,因此日誌文件將會是創建於 /application.home_IS_UNDEFINED/logs/application.log(在Play 2.3.6上測試) –
mrkinds
對於更一般的工作日誌設置,可以使用缺省值語法「: - 」進行logback變量替換:$ { application.home: - 。}文檔:http://logback.qos.ch/manual/configuration.html#defaultValuesForVariables – Sam