2012-06-08 4 views
16

У меня есть следующий RollingFileappender в моем файле конфигурации журнала.FileNamePattern в 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. Любые идеи, как мне удастся добавить дату в мое имя_файла. Благодарю.

+0

Это хороший вопрос и смутил меня. LogBack продолжает регистрироваться в MyLogFile.log и никогда не заканчивается в MyLogFile.% {Yyyy-MM-dd} .log Интересно, какое использование для этого свойства файла. –

ответ

25

Документация TimeBasedRollingPolicy состояний:

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

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

+0

творит чудеса .. Спасибо Ceki. – Aks

+0

пример на веб-странице http://logback.qos.ch/manual/appenders.html не работает, он использует как файл, так и файлNamePattern – Marx

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> 
Смежные вопросы