3 votes

java.util.log , en utilisant 3 instances différentes de logger/fichiers log, obtenant .1 .2 etc.

J'essaie de comprendre pourquoi je génère plusieurs versions de mes fichiers journaux (.1, .2 ,etc). Mon projet a besoin de 3 loggers séparés, j'utilise java.util.log et je configure mes loggers comme suit :

logger = Logger.getLogger("Logger");
logger.addHandler(new FileHandler(logFileName));
statsLogger  = Logger.getLogger("StatsLogger");
statsLogger.addHandler(new FileHandler(statsLogFileName));
alarmLogger  = Logger.getLogger("AlarmLogger");
alarmLogger.addHandler(new FileHandler(alarmLogFileName));

mon fichier de propriétés de journalisation :

handlers=java.util.logging.ConsoleHandler java.util.logging.FileHandler
java.util.logging.FileHandler.append=true
java.util.logging.FileHandler.level=INFO
java.util.logging.ConsoleHandler.level=INFO
java.util.logging.ConsoleHandler.formatter=com.package.LogFormatter
java.util.logging.FileHandler.formatter=com.package.LogFormatter

Cela semble fonctionner, du moins pour autant que je puisse dire... les choses semblent être enregistrées dans les bons fichiers journaux. Avez-vous une idée de ce qui pourrait être la cause de ce problème ?

Merci pour toute idée

2voto

user467257 Points 603

Selon la javadoc de FileHandler http://docs.oracle.com/javase/1.4.2/docs/api/java/util/logging/FileHandler.html#FileHandler

Normalement, le champ unique "%u" est défini sur 0. Cependant, si le FileHandler tente d'ouvrir le nom de fichier et constate que le fichier est actuellement actuellement utilisé par un autre processus, il incrémentera le champ de numéro unique et et réessaie. Cette opération sera répétée jusqu'à ce que le FileHandler trouve un nom de fichier qui n'est pas actuellement utilisé. nom de fichier qui n'est pas en cours d'utilisation. S'il y a un conflit et qu'aucun champ "%u" n'a été spécifié, le nom de fichier sera supprimé. n'a été spécifié, il sera ajouté à la fin du nom de fichier après un point. après un point (après tout numéro de génération ajouté automatiquement). automatiquement ajouté).

Avez-vous plusieurs processus en cours d'exécution qui utilisent la même configuration de journal ? Vérifiez également que les anciens processus de test n'apparaissent pas dans la visionneuse de processus de Windows.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X