为什么播放框架2.0会在重启后删除日志?

时间:2012-10-29 07:50:34

标签: playframework playframework-2.0

我使用play dist构建了包并将其部署到网络服务器。现在它在每次重启后截断application.log。这种行为的可能原因是什么?

2 个答案:

答案 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>