5

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

4

2 回答 2

2

在源代码中是这样完成的(每次重启时删除日志文件),您可以在此处查看源代码

为防止这种情况,您可以提供备用conf/logger.xml文件并使用自定义配置。

例如,要在用户主文件夹中创建一个日志文件(改编自本文档):

<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>
于 2012-10-29T08:00:12.327 回答
0

关键是在 logback.xml 的文件 appender 中设置<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>
于 2016-12-06T17:10:39.370 回答