Spring Boot:当前日期目录中的日志文件和过渡

时间:2019-07-16 11:47:32

标签: java spring spring-boot logging

我的要求是在当前日期目录中打印日志,并且在以下情况下需要将日志翻转到当前日期目录中: 1)达到最大文件大小 2)或日期已更改

所以今天的日期是2019年7月16日,因此目录结构应为

16_07_2019 / fde.log(当前日志)

16_07_2019 / fde.1.log(由于最大大小)

16_07_2019 / fde.2.log(由于最大大小)

15_07_2019 / fde.log(昨天的日志)

15_07_2019 / fde.1.log(由于最大大小,昨天的日志)

我的logback.xml是:

<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true">

    <include resource="org/springframework/boot/logging/logback/defaults.xml"/>

    <appender name="FILE"
        class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>/VVV/AA/%d{yyyy_MM_dd}/fde.log</file>
        <rollingPolicy
            class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <!-- rollover daily -->
            <fileNamePattern>/VVV/AA/%d{yyyy_MM_dd}/fde.%i.log
            </fileNamePattern>
            <maxFileSize>2MB</maxFileSize>
        </rollingPolicy>
        <encoder>
            <pattern>%d{MM:dd HH:mm:ss.SSS} [%t] [%level] [%logger{36}] - %msg%n
            </pattern>
        </encoder>
    </appender>

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

不是创建当前日期目录,而是创建%d{yyyy_MM_dd}目录。我不确定为什么吗?

此外,根据我的要求,这个xml看起来还不错吗?

使用SpringBoot:2.0.5版本

1 个答案:

答案 0 :(得分:0)

尝试一下:

<file>/VVV/AA/logs/fde.log</file>
<rollingPolicy
    class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
    <!-- rollover daily -->
    <fileNamePattern>/VVV/AA/logs/fde-%d{yyyy_MM_dd}.%i.log</fileNamePattern>
    <maxFileSize>2MB</maxFileSize>
</rollingPolicy>

仅滚动显示文件名,而不显示日志文件目录。