2012-06-08 18 views
16

Ho il seguente RollingFileappender nel mio file di configurazione di logback.FileNamePattern in RollingFileAppender - configurazione di logback

<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> 

Lo fa scrivere un file nella directory di cui sopra come MyLogFile.log ma non aggiunge la data come specificato nel FileNamePattern. Qualche idea su come posso aggiungere la data nel mio fileName. Grazie.

+0

Questa è una buona domanda e ha confuso anche me. LogBack continua a accedere a MyLogFile.log e non finisce mai in MyLogFile.% {Yyyy-MM-dd} .log Mi chiedo quale sia l'utilità per questa proprietà del file. –

risposta

25

La documentazione per TimeBasedRollingPolicy stati:

notare che la struttura file nel RollingFileAppender (il genitore di TimeBasedRollingPolicy) può essere impostata o omesso. Impostando la proprietà del file contenente FileAppender, è possibile disaccoppiare la posizione del file di registro attivo e il percorso dei file di registro archiviati . I log correnti saranno sempre mirati al file specificato dalla proprietà file. Ne consegue che il nome del file di registro attualmente attivo non cambierà nel tempo. Tuttavia, se si sceglie di omettere la proprietà file, il file attivo verrà calcolato nuovamente per ogni periodo in base al valore di fileNamePattern.

Nel tuo caso, è sufficiente omettere la proprietà file.

+0

ha funzionato meraviglie ... grazie Ceki. – Aks

+0

esempio sulla pagina web http://logback.qos.ch/manual/appenders.html è danneggiato, utilizza sia file che fileNamePattern – Marx

2

Ad esempio è possibile utilizzare la seguente configurazione. E 'stato testato e funziona :)

<!-- 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> 
Problemi correlati