ログバック構成ファイルに次の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に日付を追加する方法はありますか。ありがとう。
TimeBasedRollingPolicy
のドキュメントには次のように記載されています。
file
(RollingFileAppender
の親)のTimeBasedRollingPolicy
プロパティは、設定または省略できることに注意してください。含まれているFileAppender
のファイルプロパティを設定することにより、アクティブなログファイルの場所とアーカイブされたログファイルの場所を分離できます。現在のログは、常に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>