LogBack 日志压缩产生上百G的tmp文件问题

在使用LogBack打印日志,并根据每天和自定义大小拆分压缩文件时,**出现上百G的tmp文件,不会自动删除,另外,出现tmp没有删除的情况时,压缩文件里面的文件是空的。**
请问是什么情况,是否可以优化logback的配置。
当前应用的每日日志量大概在10G.
图片说明

   <!-- 文件输出 -->
  <appender name="file_log"
    class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>${LOG_HOME}/log.log</file>
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
      <fileNamePattern>${BACKUP}/log%d{yyyy-MM-dd}-%i.log.zip
      </fileNamePattern>
      <maxHistory>30</maxHistory>
      <timeBasedFileNamingAndTriggeringPolicy
        class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
        <maxFileSize>500MB</maxFileSize>
      </timeBasedFileNamingAndTriggeringPolicy>
    </rollingPolicy>
    <encoder>
      <charset>${CHARSET}</charset>
      <pattern>${PATTERN_DEF}</pattern>
    </encoder>
  </appender>

和文件权限有什么关系,文件都能写入了?
我发现机器性能好的,出现这种情况比较少!

另外,出现tmp没有删除的情况时,压缩文件里面的文件是空的。

是不是tmp文件被lock住了,造成没写入,也无法删除

解决了吗?近期遇到了相同的问题

升级至logback到1.1.6以上即可解决。

核心类:TimeBasedRollingPolicy#rollover()方法
根据源码,找到了两个会清理日志文件的地方。1. 压缩*.zip文件之后,*.tmp会被删除;2. 设置了MaxHistory最大保留期限,是会清理*.zip文件的。

第一种:压缩完之后有一个delete()操作,如果所在用户没有删除的权限的话(这种可能性不大),tmp是不会被清除的 ;还有就是压缩完之后,还未删除tmp文件,应用就死掉了,那么这个tmp是不会被删除的(基本就是这么产生的)
第二种:未设置MaxHistory,默认是不会清理所有的log文件的;假如设置了MaxHistory,它也只是会删除 日期*.zip文件,*.tmp文件是不会被删除的。

解决方案:通过linux脚本定时删除logs/*.tmp 文件

找了好多文章说升级logback版本,但是并没有什么用啊,希望早日解决