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
6 Réponses :
Essayez de supprimer les journaux code> à partir des deux .file code> et filenamePattern code>. Je lis le code et on dirait que cela devrait fonctionner, mais cela vaut peut-être la peine de réduire le problème. P>
Je suppose que vous utilisez juste em> log4j. La version 1.2.16 est le plus récente. Le seul moyen d'obtenir ce que vous voulez travailler est de télécharger Apache Extras compagnon pour log4J . P>
Finalement, si vous ne voulez pas utiliser des extras, vous pouvez travailler en ligne de contournement en utilisant: p>
rollingpolicy code> n'existe pas dans son code source; seulement dans log4j.dtd code> fichier pour la configuration xml. p>
Selon le log4j wiki : p>
Notez que TimebaseDrollingPolicy peut seulement être configuré avec XML, pas log4j.properties p> blockQuote>
L'API Ne mentionne pas cela, mais peut-être que c'est le problème? P>
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<.
Télécharger log4j code> extras jar fichier et mettez-le dans le dossier lib.
Ajoutez également l'étiquette rollingpolicy code> suivante:
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
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..");
}
S'il vous plaît fournir une explication avec la réponse