0

我的 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 中指定的日期。

有一个类似的问题,但它从未回答我的困惑。

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

这让我很困惑。是不是搞错了?

4

1 回答 1

2

file属性,当与fileNamePattern一个一起使用时,将定义活动文件的名称,并且只有存档文件将具有该模式作为名称。滚动活动文件时,将使用该名称创建一个新的存档文件。从手册的第 4 章开始

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

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

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

于 2013-10-30T14:55:49.840 回答