J'ai une application qui utilise log4j pour se connecter à un fichier texte, j'ai placé un fichier log4j.properties dans mon fichier jar exécutable contenant les paramètres de configuration de journal par défaut.Modifier le fichier de propriétés log4j à l'exécution provoquer un journal par défaut vide créé
Mon fichier log4j.properties se présente comme suit:
log4j.rootLogger=INFO, A1
log4j.appender.A1=org.apache.log4j.FileAppender
log4j.appender.A1.File=mylogfile.log
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%d{dd/MM/yyyy HH\:mm\:ss,SSS} %-5p [%t] - %m%n
Mon application ont également une option de ligne de commande qui permet à l'utilisateur de modifier le nom du fichier journal, donc j'avoir une fonction comme celle-ci que le changement les paramètres de log4j lors de l'exécution:
public void changeLogFileName(String filename) {
props.setProperty("log4j.appender.A1","org.apache.log4j.DailyRollingFileAppender");
props.setProperty("log4j.appender.A1.DatePattern","'-'ddMMyyyy");
props.setProperty("log4j.appender.A1.File",filename);
LogManager.resetConfiguration();
PropertyConfigurator.configure(props);
}
Tout fonctionne bien, sauf lorsque l'instruction LogManager.resetConfiguration() et/ou PropertyConfigurator.configure (props) sont exécutées un fichier journal vide par défaut (mylogfile.log) est créé automatiquement. Après cela, tout ce que je connecte à partir de mon application sera écrit correctement dans le nouveau fichier, mais un fichier vide est quand même créé (avec le nom du fichier journal par défaut dans log4j.properties).
Y at-il un moyen d'éviter la création du fichier journal par défaut vide?