Java FixedWindowRollingPolicy和SizeBadeTriggeringPolicy触发策略不适用于logback 1.1.7

Java FixedWindowRollingPolicy和SizeBadeTriggeringPolicy触发策略不适用于logback 1.1.7,java,logback,rollingfileappender,Java,Logback,Rollingfileappender,这是我的logback配置,即使超过2MB(maxfileSize),文件也不会被归档。我使用的是1.1.7版本的logback。不确定到底是什么问题 <configuration> <appender name="RFILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>../logs/esync.log</file>

这是我的logback配置,即使超过2MB(maxfileSize),文件也不会被归档。我使用的是1.1.7版本的logback。不确定到底是什么问题

<configuration>
    <appender name="RFILE"
        class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>../logs/esync.log</file>
        <encoder>
            <pattern>%d{MM-dd-yy HH:mm:ss} %-5level %mdc %logger{60}::%M:%line -
                %msg%n
            </pattern>
        </encoder>
        <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
            <!-- daily rollover -->
            <fileNamePattern>../logs/archive/esync.%d{yyyy-MM-dd}.%i.log
            </fileNamePattern>
            <minIndex>1</minIndex>
            <maxIndex>10</maxIndex>
        </rollingPolicy>


            <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>2MB</maxFileSize>
</triggeringPolicy>

    </appender>

    <root level="${log.level:-INFO}">
        <appender-ref ref="RFILE" />
    </root>
</configuration>

../logs/esync.log
%d{MM-dd-yy HH:MM:ss}%-5级%mdc%logger{60}::%M:%line-
%消息%n
../logs/archive/esync.%d{yyyy-MM-dd}.%i.log
1.
10
2MB

如果您仍然面临这个问题,我从loback站点收集了解决方案: “考虑到在某些平台上计算文件大小是一项相对昂贵的操作,在SizeBasedTriggeringPolicy类的isTriggeringEvent方法中,我们每16次调用只检查一次文件大小。对于长期存在的应用程序,这不是问题,因为它最终会调用16次isTriggeringEvent()。但是,对于在关闭前很少进行日志记录调用的短期应用程序,isTriggeringEvent()可能永远不会被调用16次”

在这些行中,为了测试我的短期应用程序,我将线程设置为睡眠一段时间,这会导致日志文件按设置的大小滚动。 记录语句时我的代码:

public class MyLoggingClass {

    private static final Logger logger = LoggerFactory.getLogger(MyLoggingClass.class);

    public void method1() {

        for(int i=0; i<50;i++) {
            logger.debug("This is Debug Message : " + i);
            logger.info("This is Info Message : " + i);
            try{
                Thread.sleep(1000);
            }catch(Exception e){}
        }
    }
}
公共类MyLoggingClass{
私有静态最终记录器Logger=LoggerFactory.getLogger(MyLoggingClass.class);
公共无效方法1(){
对于(int i=0;i