滚动文件追加程序中的文件名模式 - 登录配置



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

<appender name="RollingFILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
  <File>C:FilesMyLogFile.log</File>      
  <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> 
  <FileNamePattern>C:FilesMyLogFile.%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中指定的日期。任何想法如何设法在我的文件名中附加日期。谢谢。

TimeBasedRollingPolicy的文档指出:

请注意,file 属性 RollingFileAppender (父级 TimeBasedRollingPolicy ) 可以设置或省略。通过设置 包含FileAppender的 file 属性,可以解耦 活动日志文件的位置和存档日志的位置 文件。当前日志将始终以指定的文件为目标 由file物业。因此,当前活动的名称 日志文件不会随时间而更改。但是,如果您选择省略 file属性,则将为每个 期间基于fileNamePattern的值。

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

例如,您可以使用以下配置。它经过测试并:)

<!-- 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>

最新更新