8
votes

Utilisation de FilenamePattern, RollingFileAppender dans Log4J

J'ai un fichier journal nommé App.log. Quand il se déplace (je le limite à chaque minute juste à des fins de test), j'aimerais que cela soit renommé sur app-aaa-mm-dd_hh-mm.log code> mais cela ne fonctionne pas. Vous trouverez ci-dessous mes paramètres log4J:

log4j.appender.myLog=org.apache.log4j.RollingFileAppender
log4j.appender.myLog.rollingPolicy=TimeBasedRollingPolicy
log4j.appender.myLog.File=logs/app.log
log4j.appender.myLog.rollingPolicy.FileNamePattern=logs/app-%d{yyyy-MM-dd_HH-mm}.log
log4j.appender.myLog.Append=true
log4j.appender.myLog.layout=org.apache.log4j.PatternLayout
log4j.appender.myLog.layout.ConversionPattern=%d %-5p [%t] %-17c{2} (%13F:%L) %3x - %m%n


0 commentaires

6 Réponses :


0
votes

Essayez de supprimer les journaux à partir des deux .file et filenamePattern . Je lis le code et on dirait que cela devrait fonctionner, mais cela vaut peut-être la peine de réduire le problème.

https://svn.apache.org/repos/asf/logging/rog4j/companions/extras/trunk/src/main/java/org/apache/log4j/rolling/timebasedrollingpolicy.java


0 commentaires


3
votes

Selon le log4j wiki :

Notez que TimebaseDrollingPolicy peut seulement être configuré avec XML, pas log4j.properties

L'API Ne mentionne pas cela, mais peut-être que c'est le problème?


1 commentaires

Ceci a été Fixe il y a un moment et log4j-1.2.16 .jar ou plus haut avec le package Log4J-Extras fonctionnent bien lorsqu'une stratégie de roulement de temps est utilisée dans le configurisseur de propriétés. J'ai récemment effectué un correctif pour permettre la création automatique des sous-répertoires récursifs lors de l'utilisation de cette combinaison: Pastebin.com/dugn7Aiz<.



3
votes

Télécharger log4j extras jar fichier et mettez-le dans le dossier lib. Ajoutez également l'étiquette rollingpolicy suivante: xxx


0 commentaires

1
votes

Veuillez vérifier que vous avez inclus Apache-log4j-extras.jar et utiliser log4j-1.2.16.jar ou au moins au-dessus de la version 2.17. Voici des échantillons log4j.properties qui peuvent être utilisés.

    #Worked with 2.17 version
    #make log files rotate every minute or hour and zip old rotated logs
    log4j.rootLogger=INFO, loggerId
    log4j.appender.loggerId=org.apache.log4j.rolling.RollingFileAppender
    log4j.appender.loggerId.rollingPolicy=org.apache.log4j.rolling.TimeBasedRollingPolicy
    log4j.appender.loggerId.rollingPolicy.ActiveFileName=worker.log
    log4j.appender.loggerId.rollingPolicy.FileNamePattern=worker-.%d{yyyyMMdd-HHmm}.log.gz
    log4j.appender.loggerId.layout=org.apache.log4j.PatternLayout
    log4j.appender.loggerId.layout.ConversionPattern=%d [%t] %-5p (%F:%L) - %m%n


0 commentaires

0
votes
System.out.println("Loggers initiallization process started..");
 if(objApploger == null){
     objApploger = new AppLogger();
     String loglevel="ERROR";
     String logPath="E:\\Examples\\applicationLogs";
     String logMaxSize="50000";//in kbs
     int nmaxbackupIndex=20;
     String conversionPattern="%d{yyyy-MM-dd HH:mm:ss:SSS} %-5p  :: %m%n";       
     RollingFileAppender RFAppender= null;
     RFLog =Logger.getLogger("Log");
     RFLog.setLevel(Level.toLevel(loglevel));       
     Calendar cal= Calendar.getInstance();       
     String timeFrame=cal.get(5)+"_"+(cal.get(2)+1)+"_"+cal.get(1);
     logPath=logPath+"TestLog_"+timeFrame+".log";
     RFAppender = new RollingFileAppender(new PatternLayout(conversionPattern),logPath);
     RFAppender.setMaxBackupIndex(nmaxbackupIndex);
     RFAppender.setMaxFileSize(logMaxSize);
     RFLog.addAppender(RFAppender);
     System.out.println("Loggers initiallization process completed..");      
 } 

1 commentaires

S'il vous plaît fournir une explication avec la réponse