2010-12-03 3 views
2

So verwenden wir Log4j DailyRollingFileAppender, um unsere Protokolldateien zu erstellen. Das ist wirklich nett, da es für jeden Tag oder jede Stunde eine neue Datei erstellen kann. Wir möchten, dass der Appender einen neuen Ordner basierend auf dem Tag und dann neue Protokolldateien basierend auf der Stunde erstellt. Ist das möglich?Log4j Konfiguration: Wie erstellt man einen neuen Ordner für jeden Tag?

Hier ist unsere aktuelle Konfiguration ... derzeit eingerichtet, um alle Protokolldateien (erstellt stündlich) in someFolder abzulegen. Ich denke, wir würden etwas Phantasie in der „Datei“ param tun können, um zu tun, was wir wollen:

<appender name="PlainFileAppender" class="org.apache.log4j.DailyRollingFileAppender"> 
     <param name="File" value="someFolder/someFileName_plain.log" /> 
     <param name="DatePattern" value=".yyyy-MM-dd-HH" /> 
      <param name="ImmediateFlush" value="true" /> 
      <layout class="org.apache.log4j.PatternLayout"> 
      <param name="ConversionPattern" 
       value="%d %-5p [%t] %c{1}: %m%n" /> 
     </layout> 
      <filter class="com.trgr.cobalt.infrastructure.logging.ClassFilter"> 
       <param name="classNameFilter" value="com.trgr.cobalt.infrastructure.logging.LogRecord" /> 
       <param name="acceptOnMatch" value="false" /> 
       <param name="neutrality" value="true" /> 
      </filter> 
    </appender> 

Antwort

4

Das mit diesem appender nicht möglich ist, da es sich immer um das Datum zu dem angegebenen Dateinamen anhängt (so dass Sie nicht Geben Sie einen speziellen Dateinamen an, um das Ergebnis zu erzielen) und erstellen Sie keine fehlenden Verzeichnisse, selbst wenn Sie ein ausgefallenes Datumsmuster angeben.

So können Sie einen Appender auf eigene Faust schreiben oder einen solchen benutzerdefinierten log4j Appender irgendwo finden. Log4j-Nachfolger, Logback, has such an appender.

Verwandte Themen