How to configure rolling file appender within Spring Boot's application.yml How to configure rolling file appender within Spring Boot's application.yml spring spring

How to configure rolling file appender within Spring Boot's application.yml


The default file appender is size based (10MB).

In your logback.xml just configure a TimeBasedRollingPolicy as described here

I.e. something like:

<?xml version="1.0" encoding="UTF-8"?><configuration>  <include resource="org/springframework/boot/logging/logback/base.xml"/>  <appender name="ROLLIN" class="ch.qos.logback.core.rolling.RollingFileAppender">    <file>${LOG_FILE}</file>    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">        <!-- daily rollover -->        <fileNamePattern>${LOG_FILE}.%d{yyyy-MM-dd}.log</fileNamePattern>    </rollingPolicy>  </appender>  <root level="INFO">    <appender-ref ref="ROLLIN" />  </root>  <logger name="org.springframework.web" level="INFO"/></configuration>


To override the default file appender and change it to daily rollover, you could use a logback-spring.xml looking like this:

<?xml version="1.0" encoding="UTF-8"?><configuration>    <include resource="org/springframework/boot/logging/logback/defaults.xml"/>    <property name="LOG_FILE" value="${LOG_FILE:-${LOG_PATH:-${LOG_TEMP:-${java.io.tmpdir:-/tmp}}/}spring.log}"/>    <include resource="org/springframework/boot/logging/logback/console-appender.xml"/>    <appender name="ROLLING-FILE"              class="ch.qos.logback.core.rolling.RollingFileAppender">        <encoder>            <pattern>${FILE_LOG_PATTERN}</pattern>        </encoder>        <file>${LOG_FILE}</file>        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">            <!-- daily rollover -->            <fileNamePattern>${LOG_FILE}.%d{yyyy-MM-dd}.log</fileNamePattern>        </rollingPolicy>    </appender>    <root level="INFO">        <appender-ref ref="CONSOLE"/>        <appender-ref ref="ROLLING-FILE"/>    </root></configuration>


logging.file.name=MyApp.loglogging.pattern.rolling-file-name=MyApp-%d{yyyy-MM-dd-HH-mm-ss}.%i.log

Working with Spring Boot 2.3.4 and 2.2.10
Not working with Spring Boot 2.1.17