通过RollingFileAppender滚动日志文件不能正常工作

时间:2015-09-18 09:55:40

标签: java log4j logback rollingfileappender

我正在使用ch.qos.logback.core.rolling.RollingFileAppender并使用时间和大小滚动政策但有时候行为不当而且没有正确重命名。

例如:如果我的日志文件名为hotel-soa.log,当天它的大小达到1GB,则应将其重命名为hotel-soa.2015-09-18.0.log,并创建另一个hotel-soa.log并记录日志应该登录该文件只有在一天结束时它也应该重命名为hotel-soa.2015-09-18.1.log。

但有时hotel-soa.log在达到大小限制之前就停止了,而且创建了hotel-soa.log.1 ,这也是当前的日志文件。

见以下数据:

-rw-rw-r-- 1   491K Sep 18 09:08 hotel-soa.log

-rw-rw-r-- 1   345M Sep 18 11:12 hotel-soa.log.1

应该是:

rw-rw-r-- 1   1024M Sep 18 11:08 hotel-soa.2015-09-18.0.log

rw-rw-r-- 1   491M Sep 18 11:08 hotel-soa.log

我正在使用以下配置请帮助

<appender name="LOGS"
    class="ch.qos.logback.core.rolling.RollingFileAppender">
    <File>/opt/tomcat/tomcat7/logs/hotel-soa.log</File>
    <append>true</append>
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <fileNamePattern>/opt/tomcat/tomcat7/logs/hotel-soa.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
        <timeBasedFileNamingAndTriggeringPolicy
                    class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                    <!-- or whenever the file size reaches 1GB -->
                    <maxFileSize>1GB</maxFileSize>
        </timeBasedFileNamingAndTriggeringPolicy>
        <MaxHistory>50</MaxHistory>
    </rollingPolicy>
    <encoder>
        <Pattern>%d %-5p [%thread] %c{10}:%line:[pos=%X{IDContext},%X{ID},%X{Token}] - %m%n</Pattern>
    </encoder>
</appender>

0 个答案:

没有答案