我使用play dist
构建了包并将其部署到网络服务器。现在它在每次重启后截断application.log。这种行为的可能原因是什么?
答案 0 :(得分:2)
在源代码中这样做(每次重启时删除日志文件),你可以看一下source code here。
为防止这种情况发生,您可以提供备用conf/logger.xml
文件并使用自定义配置。
例如,要在用户主文件夹中创建一个日志文件(改编自此documentation):
<configuration>
<conversionRule conversionWord="coloredLevel" converterClass="play.api.Logger$ColoredLevel" />
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
<file>${user.home}/logs/myapp.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>
答案 1 :(得分:0)
关键是在logback.xml中的文件追加器中将<append>
设置为true
:
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
<append>true</append>
<file>${user.home}/logs/myapp.log</file>
<encoder>
<pattern>%date - [%level] - from %logger in %thread %n%message%n%xException%n</pattern>
</encoder>
</appender>