I have a basic spring boot application with the logback.xml below

<configuration>

  <appender name="ROLLING" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>mylog.txt</file>
    <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
      <fileNamePattern>mylog-%d{yyyy-MM-dd}.%i.txt</fileNamePattern>
      <maxFileSize>1MB</maxFileSize>
      <maxHistory>60</maxHistory>
      <totalSizeCap>1GB</totalSizeCap>
    </rollingPolicy>

    <encoder>
      <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-4relative [%thread] %-5level %logger{35} - %msg%n</pattern>
    </encoder>
  </appender>

  <root level="DEBUG">
    <appender-ref ref="ROLLING"/>
  </root>
</configuration>

I created logs with the following code to test the rolling.

@Slf4j
@SpringBootApplication
public class LogbackApplication implements CommandLineRunner {

    public static void main(String[] args) {
        SpringApplication.run(LogbackApplication.class, args);
    }

    @Override
    public void run(String... args) throws Exception {
        for (int i = 0; i < 100000; i++) {
            log.debug("This is DEBUG");
            log.info("This is INFO");
            log.warn("This is WARN");
        }
    }
}

I observed a log file of more than 25 MB. It is not rolling. If I put some sleep statements inside logging, it rolls.

Is it a bug? or am I misconfiguring it? or expected behavior because of performance reasons?