0

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?

user1470509
  • 91
  • 1
  • 4

0 Answers0