2017-12-18 2 views
0

In meinem Projekt verwenden wir log4j für Protokollierungszwecke. Wir verwenden täglich DailyRollingFileAppender und das Problem ist, dass die Datei wie erwartet jede Minute durchläuft. Aber wir möchten die Datei an einem anderen Ort speichern. Unten ist meine Konfiguration.Wie speichern Sie rollende Dateien in einem anderen Verzeichnis?

<appender name="OUTPUT" 
     class="org.apache.log4j.DailyRollingFileAppender"> 
     <param name="file" value="D:\\log\\selvaLog.log" /> 
     <param name="datePattern" value="yyyy-MM-dd HH-mm'.'" /> 
     <param name="append" value="true" /> 
    <layout class="org.apache.log4j.PatternLayout"> 
     <param name="ConversionPattern" value="%d{dd:MM:yyyy HH:mm:ss.SSS} - %C{1} (%M:%L) - %m%n" /> 
    </layout> 
</appender> 

Die obige Konfiguration erzeugt in folgenden Format Datei:

D:\Log 
      selvaLog.log 
      selvaLog.log2017-12-18 15-28 
      selvaLog.log2017-12-18 15-29 

Aber was wir die Datei so speichern wollten:

D:\Log 
     selvaLog.log 


D:\Log\Archived 
     selvaLog.log2017-12-18 15-28 
     selvaLog.log2017-12-18 15-29 

Ist es möglich, zu speichern, die Rollover in verschiedenen Ort, anstelle des aktuellen Verzeichnisses?

Jede Hilfe wird sehr geschätzt!

Antwort

0

Für einen solchen Anwendungsfall müssen Sie einen benutzerdefinierten Datei-Appender verwenden, in dem Sie den archivierten Dateinamen von Grund auf neu erstellen und den relativen Pfad dem anderen Verzeichnis voranstellen.

zB:

../Archieved/selvaLog.log.2017-12-18

Schauen Sie sich die API für FileAppender

+0

Diese könnten auch helfen: https://svn.apache.org/repos/asf/logging/log4j/trunk/ src/main/java/org/apache/log4j/RollingFileAppender.java – MozenRath

+0

https://svn.apache.org/repos/asf/logging/log4j/trunk/src/main/java/org/apache/log4j/DailyRollingFileAppender. Java – MozenRath

Verwandte Themen