如何增加记录Spring Boot logback-spring.xml的天数

时间:2019-05-02 16:20:26

标签: spring-boot

任何帮助或提示将不胜感激!

我的SpringBoot应用程序仅记录1天。我希望它记录30天以上。

logback-spring.xml

<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
    <encoder>
        <charset>UTF-8</charset>
        <pattern>${CONSOLE_LOG_PATTERN}</pattern>
    </encoder>
</appender>

<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <encoder>
        <charset>UTF-8</charset>
        <pattern>${FILE_LOG_PATTERN}</pattern>
    </encoder>
    <file>${LOG_FILE}</file>
    <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
        <fileNamePattern>${LOG_FILE}.%i</fileNamePattern>
        <minIndex>1</minIndex>
        <maxIndex>10</maxIndex>
    </rollingPolicy>
    <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
        <MaxFileSize>10MB</MaxFileSize>
    </triggeringPolicy>
</appender>

<logger name="ca.test.hub" level="INFO" additivity="false">
    <appender-ref ref="CONSOLE"/>
    <appender-ref ref="FILE"/>
</logger>
<logger name="org.apache.cxf" level="INFO" additivity="false">
    <appender-ref ref="CONSOLE"/>
    <appender-ref ref="FILE"/>
</logger>
<logger name="org.hibernate" level="DEBUG" additivity="false">
    <appender-ref ref="CONSOLE"/>
    <appender-ref ref="FILE"/>
</logger>
<logger name="org.springframework" level="INFO" additivity="false">
    <appender-ref ref="CONSOLE"/>
    <appender-ref ref="FILE"/>
</logger>

application.yml:

logging:

文件:logs / test.log   图案:     控制台:“%d {dd-MM-yyyy HH:mm:ss.SSS} [%thread]%-5level%logger {36}。%M-%msg%n”     文件:“%d {dd-MM-yyyy HH:mm:ss.SSS} [%thread]%-5level%logger {36}。%M-%msg%n”   水平:     根:INFO

1 个答案:

答案 0 :(得分:0)

如果要将日志文件保留30天以上,最好的选择是不要使用FixedWindowRollingPolicydocumentation),如果您只想限制日志文件的数量,则可以使用此方法保留在文件系统上。

SizeAndTimeBasedRollingPolicy更适合您的需求,如documentation所述,

  

存档文件基本上是按日期,但同时限制了大小   每个日志文件

我建议对您当前的FILE附加程序进行编辑,就像这样

<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <encoder>
        <charset>UTF-8</charset>
        <pattern>${FILE_LOG_PATTERN}</pattern>
    </encoder>

    <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
        <fileNamePattern>${LOG_FILE}-%d{yyyy-MM-dd}.%i</fileNamePattern>
        <maxFileSize>10MB</maxFileSize>
        <maxHistory>30</maxHistory>
    </rollingPolicy>
</appender>

SizeAndTimeBasedRollingPolicy使用fileNamePattern LOG_FILE-2019-05-02.0存储文件(LOG_FILE当然是${LOG_FILE}变量的值)。每当该文件的大小超过10MB时,它将翻转一次,然后将创建一个新文件LOG_FILE-2019-05-02.1并将其写入。

在午夜之后写入的第一条日志将创建一个新文件LOG_FILE-2019-05-03.0并写入该文件。超过30天的日志文件将被删除。调整配置以最适合您的需求。

我建议您阅读documentation的此附加器,以获取更多详细信息。