FileNamePattern в RollingFileAppender - конфигурация журнала
У меня есть следующий файл 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
. Любые идеи, как мне удастся добавить дату в мое имя_файла. Спасибо.
Ответы
Ответ 1
В документации для TimeBasedRollingPolicy
указано:
Обратите внимание, что свойство file
в RollingFileAppender
(родительский элемент TimeBasedRollingPolicy
) может быть либо задано, либо опущено. Установив файла, содержащего FileAppender
, вы можете отделить расположение активного файла журнала и расположение архивного журнала файлы. Текущие журналы всегда будут нацелены на указанный файл по свойству file
. Из этого следует, что имя текущего активного файл журнала со временем не будет меняться. Однако, если вы решите опустить file
, тогда активный файл будет вычисляться заново для каждого период, основанный на значении fileNamePattern
.
В вашем случае просто опустите свойство file
.
Ответ 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>