使用当前系统日期在单独的目录中为每个日期创建日志文件
Create log files for each date in separate directory with current system date
我正在尝试将我的 spring-boot 应用程序的日志保存在不同目录中的每个日期以及当前日期、月份和年份。
我试过使用时间戳,只有当我们每天重新启动 tomcat 服务器时,它才会将日志存储在单独的目录中。
<?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>
我希望我的每个日期的日志存储在每天创建的目录中,而无需以类似于 [year]\[month]\[date]\logfile.log 的方式重新启动服务器
结合使用RollingFileAppender
和TimeBasedRollingPolicy
,并将fileNamePattern
设置为%d{yyyy/MM/dd}/logFile.log
。有关详细信息,请参阅 this link
<configuration>
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- daily rollover -->
<fileNamePattern>%d{yyyy/MM/dd}/logFile.log</fileNamePattern>
<!-- keep 30 days worth of history capped at 3GB total size -->
<maxHistory>30</maxHistory>
<totalSizeCap>3GB</totalSizeCap>
</rollingPolicy>
<encoder>
<pattern>%-4relative [%thread] %-5level %logger{35} - %msg%n</pattern>
</encoder>
</appender>
<root level="DEBUG">
<appender-ref ref="FILE" />
</root>
</configuration>
找到了我自己的问题的解决方案,如果你们找到更好的解决方案请告诉我。
<?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>
我正在尝试将我的 spring-boot 应用程序的日志保存在不同目录中的每个日期以及当前日期、月份和年份。
我试过使用时间戳,只有当我们每天重新启动 tomcat 服务器时,它才会将日志存储在单独的目录中。
<?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>
我希望我的每个日期的日志存储在每天创建的目录中,而无需以类似于 [year]\[month]\[date]\logfile.log 的方式重新启动服务器
结合使用RollingFileAppender
和TimeBasedRollingPolicy
,并将fileNamePattern
设置为%d{yyyy/MM/dd}/logFile.log
。有关详细信息,请参阅 this link
<configuration>
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- daily rollover -->
<fileNamePattern>%d{yyyy/MM/dd}/logFile.log</fileNamePattern>
<!-- keep 30 days worth of history capped at 3GB total size -->
<maxHistory>30</maxHistory>
<totalSizeCap>3GB</totalSizeCap>
</rollingPolicy>
<encoder>
<pattern>%-4relative [%thread] %-5level %logger{35} - %msg%n</pattern>
</encoder>
</appender>
<root level="DEBUG">
<appender-ref ref="FILE" />
</root>
</configuration>
找到了我自己的问题的解决方案,如果你们找到更好的解决方案请告诉我。
<?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>