I am trying to save logs of my spring-boot application for each date in a different directory with the current date, month and year.
I have tried using timestamps it stores the logs in the separate directory only if we restart the tomcat server every day.
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<logger name="org.hibernate" level="ERROR" />
<logger name="org.mongodb" level="ERROR" />
<property name="DIRECTORY" value="/home/Properties/logs" />
<timestamp key="year" datePattern="yyyy" />
<timestamp key="month" datePattern="MM" />
<timestamp key="date" datePattern="dd" />
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>[%d{yyyy-MM-dd HH:mm:ss.sss}][%-5p][%C][%t][%L]%m%n
</pattern>
</encoder>
</appender>
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
<file>${DIRECTORY}/${year}/${month}/${date}/logfile.log</file>
<encoder>
<pattern>[%d{yyyy-MM-dd HH:mm:ss.sss}][%-5p][%C][%t][%L]%m%n
</pattern>
</encoder>
</appender>
<root level="info">
<appender-ref ref="FILE" />
<appender-ref ref="STDOUT" />
</root>
</configuration>
I want my logs for each date to be stored in a directory created every day without the need of restarting the server in the manner similar as [year]\[month]\[date]\logfile.log
Found solution to my own question, if any of you find a better solution please let me know.
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<property name="DIRECTORY" value="/home/Properties/logs" />
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>[%d{yyyy-MM-dd HH:mm:ss.sss}][%-5p][%C][%t][%L]%m%n
</pattern>
</encoder>
</appender>
<appender name="FILE"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${DIRECTORY}/logfile.log</file>
<rollingPolicy
class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<!-- rollover daily -->
<fileNamePattern>${DIRECTORY}/%d{yyyy/MM/dd, aux}/logfile-%d{yyyy-MM-dd}.%i.log
</fileNamePattern>
<maxFileSize>50MB</maxFileSize>
</rollingPolicy>
<encoder>
<pattern>[%d{yyyy-MM-dd HH:mm:ss.sss}][%-5p][%C][%t][%L]%m%n
</pattern>
</encoder>
</appender>
<root level="info">
<appender-ref ref="FILE" />
<appender-ref ref="STDOUT" />
</root>
</configuration>