FileNamePattern в RollingFileAppender - конфигурация журнала - программирование
Подтвердить что ты не робот

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

4b9b3361

Ответ 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>