RollingFileAppender中的文件属性 - logback配置

时间:2013-09-17 15:27:24

标签: file properties configuration logback rollingfileappender

我的logback配置文件中有以下RollingFileappender。

<appender name="RollingFILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
  <File>C:\Files\MyLogFile.log</File>      
  <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> 
    <FileNamePattern>C:\Files\MyLogFile.%d{yyyy-MM-dd}.log</FileNamePattern>       
    <MaxHistory>30</MaxHistory>     
  </rollingPolicy>      
  <encoder>
    <pattern>%date %level [%thread] %logger{60} [%file:%line] %msg%n</pattern>
  </encoder> 
</appender>

它写入MyLogFile.log但不附加FileNamePattern中指定的日期。

有一个simular question,但它从未解决我的困惑。

我应该省略文件属性。 为什么文件属性有用,因为它似乎否决了滚动文件活动。

这让我很困惑。做错了什么?

1 个答案:

答案 0 :(得分:2)

file属性在fileNamePattern属性中使用时,将定义ACTIVE文件的名称,只有已归档的文件才会将该模式作为名称。滚动活动文件时,将使用该名称创建新的存档文件。来自chapter 4 in the manual

  

请注意,可以设置或省略RollingFileAppender(TimeBasedRollingPolicy的父级)中的文件属性。通过设置包含FileAppender的file属性,可以分离活动日志文件的位置和归档日志文件的位置。当前日志将始终以文件属性指定的文件为目标。因此,当前活动日志文件的名称不会随时间而改变。但是,如果您选择省略文件属性,则将根据fileNamePattern的值为每个句点重新计算活动文件。

因此,当您想要一个固定名称时,它很有用,例如,如果您需要以编程方式发送活动文件,并且不想猜测当前日期的文件名是什么。

另请注意,file是从常规FileAppender继承的属性。