21

我的 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

2 回答 2

27

状态的文档TimeBasedRollingPolicy

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

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

于 2012-06-09T08:05:10.147 回答
3

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

<!-- 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>
于 2014-02-26T13:47:37.687 回答