"追加"的选项是什么?在Logback RollingFileAppender中?

时间:2015-11-07 01:59:52

标签: java logback

我有一个使用logback的简单问题。 我在RollingFileAppender中使用Logback作为我的应用程序。 它工作得很好但是当我重新启动我的应用程序时,它不会附加现有文件但是已经到了某个地方。

这是我的应用程序的logback配置的xml文件。

 <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <!-- hourly rollover -->
        <fileNamePattern>/home/log/logFile.%d{yyyy-MM-dd}.log</fileNamePattern>
        <timeBasedFileNamingAndTriggeringPolicy
                class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
            <!-- or whenever the file size reaches 100MB -->
            <maxFileSize>100MB</maxFileSize>
        </timeBasedFileNamingAndTriggeringPolicy>
        <!-- keep 30 hours' worth of history -->
        <maxHistory>30</maxHistory>
    </rollingPolicy>
    <encoder>
        <pattern>%-4r [%thread] %X{clientIP} %d{HH:mm:ss.SSS} [%p] [%thread@%C{1}:%L] - %m%n</pattern>
    </encoder>
</appender>

例如,当我第一次启动应用程序时,它会根据上面的配置创建一个日志文件。

-rw-r--r-- 1 root root      6926 Nov  7 10:19 logFile.2015-11-07.log

但是如果我停止应用程序并重新启动,我希望将日志附加到上面的文件中,但是它不会(我甚至无法找到丢失的日志存在的位置。)

提前致谢。

1 个答案:

答案 0 :(得分:1)

documentation

  

请注意file中的RollingFileAppender属性   TimeBasedRollingPolicy)可以设置或省略。通过设置   包含FileAppender的文件属性,你可以解耦   活动日志文件的位置以及存档日志的位置   文件。 当前日志将始终以指定的文件为目标   由file属性。以下是当前活动的名称   日志文件不会随时间而改变。 但是,如果您选择省略   文件属性,然后将为每个活动文件重新计算活动文件   期限基于fileNamePattern

的值

通过计算新,它们意味着将创建一个新文件(或现有的文件被截断)。

所以只需提供一个适当命名的file属性。

<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>/home/log/logFile.log</file>
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <!-- hourly rollover -->
        <fileNamePattern>/home/log/logFile.%d{yyyy-MM-dd}.log</fileNamePattern>
        <timeBasedFileNamingAndTriggeringPolicy
                class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
            <!-- or whenever the file size reaches 100MB -->
            <maxFileSize>100MB</maxFileSize>
        </timeBasedFileNamingAndTriggeringPolicy>
        <!-- keep 30 hours' worth of history -->
        <maxHistory>30</maxHistory>
    </rollingPolicy>
    <encoder>
        <pattern>%-4r [%thread] %X{clientIP} %d{HH:mm:ss.SSS} [%p] [%thread@%C{1}:%L] - %m%n</pattern>
    </encoder>
</appender>

使用file,您可以告诉Logback哪个是活动文件,因此可以追加到哪个(在确定是否需要翻转之后)。