2010-12-03 4 views
2

Donc, nous utilisons DailyRollingFileAppender de Log4j pour créer nos fichiers journaux. C'est vraiment sympa car cela peut créer un nouveau fichier pour chaque jour ou heure. Nous aimerions que l'appender crée un nouveau dossier en fonction du jour, puis de nouveaux fichiers journaux en fonction de l'heure. Est-ce possible?Configuration de Log4j: Comment créer un nouveau dossier pour chaque jour?

Voici notre configuration actuelle ... actuellement configuré pour vider tous les fichiers journaux (créé toutes les heures) dans someFolder. Je suppose que nous pouvons faire quelque chose de fantaisie dans le « Fichier » param pour faire ce que nous voulons:

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

Répondre

4

Ce n'est pas possible avec cette appender, car il ajoute toujours la date au nom du fichier spécifié (vous ne pouvez pas spécifiez un nom de fichier spécial pour obtenir votre résultat) et ne crée pas de répertoires manquants, même si vous spécifiez un modèle de date de fantaisie.

Vous pouvez écrire un appender sur votre propre ou de trouver un appender log4j personnalisé quelque part. Le successeur de Log4j, logback, has such an appender.

Questions connexes