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 として書き込みますが、.log で指定された日付は追加しませんFileNamePattern。ファイル名に日付を追加する方法を教えてください。ありがとう。

4

2 に答える 2

27

状態のドキュメントTimeBasedRollingPolicy:

( の親 ) の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 に答える