spring-boot logback文件循环,无法让它旋转日志文件

时间:2015-09-22 14:45:32

标签: java spring logging spring-boot logback

这是我的spring-boot应用程序中类路径根目录中的logback.xml。

启动我的应用程序时,此文件永远不会旋转,日志文件会增长并变为无穷大。 (零旋转超过100kb,或任何错误的控制台日志中的信息)。目录是可写的。

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

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

<logger name="com.mystuff" level="DEBUG"/>

<appender name="FILE"
    class="ch.qos.logback.core.rolling.RollingFileAppender">
    <encoder>
        <pattern>${FILE_LOG_PATTERN}</pattern>
    </encoder>
    <file>/tmp/mylog.log</file>
    <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
        <fileNamePattern>/tmp/mylog.log.%d{yyyy-MM-dd_HH_mm_ss}.%i</fileNamePattern>
    </rollingPolicy>
    <triggeringPolicy
        class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
        <MaxFileSize>100KB</MaxFileSize>
    </triggeringPolicy>
</appender>


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

</configuration>

2 个答案:

答案 0 :(得分:0)

包含的base.xml文件存在问题。已在此文件中定义了appender ch.qos.logback.core.rolling.RollingFileAppender。它将triggeringPolicy设置为10MB。

答案 1 :(得分:0)

不幸的是“ch.qos.logback.core.rolling.FixedWindowRollingPolicy”不处理“%d {yyyy-MM-dd_HH_mm_ss}”模式。您只需使用“%i”模式。 “mylog.log。%i”会运作良好。但是如果你想在文件名中加上时间戳,请使用以下命令:

<timestamp key="ts" datePattern="yyyyMMdd'T'HHmmss"/>

...

<fileNamePattern>mylog.log-${ts}.%i</fileNamePattern>