RollingFileAppender中的FileNamePattern - logback配置

时间:2012-06-08 18:09:49

标签: 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中指定的日期。任何想法我如何设法在我的fileName中追加日期。感谢。

2 个答案:

答案 0 :(得分:25)

TimeBasedRollingPolicy州的文档:

  

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

的值

在您的情况下,只需省略file属性。

答案 1 :(得分:2)

例如,您可以使用以下配置。经过测试和工作:)

<!-- FILE APPENDER WITH PRUDENT MODE -->
<!-- IN PRUDENT MODE CANNOT BE SPECIFIED FILE, THIS PARAM IS OBTAINED FROM FILE NAME PATTERN -->
<!-- IN PRUDENT MODE ONLY TIME BASED ROLLING POLICY IS SUPPORTED - BECAUSE WE HAVE A LOG OF MULTIPLE JVM INSTANCES-->
<!-- SEE MORE AT http://logback.qos.ch/manual/appenders.html#prudentWithRolling -->
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <prudent>true</prudent>
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <fileNamePattern>${logfile.path}-%d{yyyy-MM-dd}.log</fileNamePattern>
    </rollingPolicy>

    <encoder>
        <pattern>${HOSTNAME} %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
    </encoder>
</appender>