2012-06-08 8 views
16

Ich habe den folgenden RollingFileappender in meiner Logback-Konfigurationsdatei.FileNamePattern in RollingFileAppender - Logback-Konfiguration

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

Es hat eine Datei in den oben genannten Verzeichnis als MyLogFile.log schreiben, aber nicht anhängen das Datum nicht, wie in der FileNamePattern angegeben. Irgendwelche Ideen, wie ich es schaffen kann, das Datum in meinem fileName anzuhängen. Vielen Dank.

+0

Das ist eine gute Frage und verwirrt mich auch. LogBack protokolliert weiterhin die Datei "MyLogFile.log" und landet nie in der Datei "MyLogFile".% {Yyyy-MM-dd} .log Ich frage mich, was für diese Dateieigenschaft verwendet wird. –

Antwort

25

Die Dokumentation für TimeBasedRollingPolicy Zustände:

Beachten Sie, dass die file Eigenschaft in RollingFileAppender (Mutter von TimeBasedRollingPolicy) können entweder gesetzt oder weggelassen werden. Durch Festlegen der Dateieigenschaft des enthaltenden FileAppender können Sie den Speicherort der aktiven Protokolldatei und den Speicherort der archivierten Protokolldateien entkoppeln. Die aktuellen Protokolle werden immer auf die angegebene Datei unter der file-Eigenschaft ausgerichtet. Daraus folgt, dass sich der Name der aktuell aktiven Protokolldatei im Laufe der Zeit nicht ändert. Wenn Sie jedoch die Eigenschaft file weglassen, wird die aktive Datei für jeden -Zeitraum basierend auf dem Wert fileNamePattern erneut berechnet.

In Ihrem Fall, lassen Sie einfach die file Eigenschaft weg.

+0

hat Wunder gewirkt..Danke Ceki. – Aks

+0

Beispiel auf Webseite http://logback.qos.ch/manual/appenders.html ist kaputt, es verwendet sowohl fileName als auch fileNamePattern – Marx

2

Zum Beispiel können Sie die folgende Konfiguration verwenden. Es wurde getestet und funktioniert :)

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