Logback - 在启动时删除日志文件

时间:2013-12-27 01:02:56

标签: java logback

我想在每次启动程序时删除日志文件,而不是追加它。我尝试过使用cleanHistoryOnStart属性,但这似乎没有任何效果。我可能在这里遗漏了一些东西。

如果重要的话,我在Linux上使用Eclipse。

<?xml version="1.0" encoding="utf-8"?>
<configuration scan="true" scanPeriod="10 seconds">
  <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
    <encoder>
      <pattern>%d{dd.MM.yyyy. HH:mm:ss} %level [%thread] %logger{20} - %msg%n</pattern>
    </encoder>
  </appender>
  <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>chat.log</file>
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
      <fileNamePattern>chat.log.%d{yyyy-MM-dd}</fileNamePattern>
      <cleanHistoryOnStart>true</cleanHistoryOnStart>
    </rollingPolicy>
    <encoder>
      <pattern>%d{dd.MM.yyyy. HH:mm:ss} %level [%thread] %logger{20} - %msg%n</pattern>
    </encoder>
    <Encoding>utf-8</Encoding>
  </appender>
  <logger name="src" additivity="false" level="ALL">
    <appender-ref ref="STDOUT"/>
    <appender-ref ref="FILE"/>
  </logger>
  <root level="OFF">
    <appender-ref ref="STDOUT"/>
  </root>
</configuration>

2 个答案:

答案 0 :(得分:10)

在appender中包含<param name="Append" value="false" />以在启动时清理日志文件。

否则试试这个

http://veerasundar.com/blog/2009/08/how-to-create-a-new-log-file-for-each-time-the-application-runs/

答案 1 :(得分:0)

TimeBasedRollingPolicy的目的是在启动时而不是在翻转时删除存档文件。你说你正在使用Eclipse,所以这只是为了开发正确吗?