以下のように書くことでログをローテートできます。
<configuration> <conversionRule conversionWord="coloredLevel" converterClass="play.api.Logger$ColoredLevel" /> <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${application.home}/logs/application.log</file> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <!-- daily rollover --> <fileNamePattern>${application.home}/logs/application.%d{yyyy-MM-dd}.log</fileNamePattern> <!-- keep 10 days' worth of history --> <maxHistory>10</maxHistory> </rollingPolicy> <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>
https://github.com/YoshiteruIwasaki/PlayFrameworkRecruitConsole/blob/master/conf/logger.xml
ちなみに1点注意が必要なのですが、PlayをSTOPするときにログは別名で保存されなおされません。
application.logのままです。その状態でPlayをStartすると、ログはフラッシュされて消えます。
何らかの障害が発生
とりあえずPlayを再起動してみる
やった!直った!でも直近のログが消えてる
ということが起きるので、Startする前に直近のログは退避させるようにしましょう。