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. Любые идеи, как мне добавить дату в мое имя файла. Спасибо.


person Aks    schedule 08.06.2012    source источник
comment
Это хороший вопрос, и он меня тоже смутил. LogBack продолжает вести журнал в MyLogFile.log и никогда не попадает в MyLogFile.%{yyyy-MM-dd}.log Интересно, для чего используется это свойство файла.   -  person Dimitri Dewaele    schedule 17.09.2013


Ответы (2)


В документации для TimeBasedRollingPolicy указано:

Обратите внимание, что свойство file в RollingFileAppender (родительском элементе TimeBasedRollingPolicy) может быть задано или опущено. Установив свойство файла содержащего FileAppender, вы можете отделить расположение активного файла журнала от расположения заархивированных файлов журнала. Текущие журналы всегда будут нацелены на файл, указанный в свойстве file. Из этого следует, что имя текущего активного лог-файла не изменится со временем. Однако, если вы решите опустить свойство file, то активный файл будет вычисляться заново для каждого периода на основе значения fileNamePattern.

В вашем случае просто опустите свойство file.

person Ceki    schedule 09.06.2012
comment
пример на веб-странице logback.qos.ch/manual/appenders.html не работает, это использует как file, так и fileNamePattern - person Marx; 23.06.2016

Например, вы можете использовать следующую конфигурацию. Проверено, работает :)

<!-- 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>
person Przemek Nowak    schedule 26.02.2014