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