Bonjour,

J'ai crée dans ma classe main de mon projet l'attribut suivant :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
    /*---------------------------*/
    /* Declaration des Attributs */
    /*---------------------------*/
    public static Logger aJournal = Logger.getLogger("ReferentielDesFlux");
Ce n'est pas très propre d'avoir un attribut public, mais je souhaitais pouvoir utiliser le même logger pour toutes mes classes et donc pas à réinstancier le handler après systématiquement.

Puis voici un bout de code dans l'opération main, pour récupérer la log dans un fichier : C:\TEMP\referentiel\log\TraitementReferentielFlux.log


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
 
 
        // Déclaration des objets locaux
        String l_encodage = null;
        String l_nomLongFichierLog = null;
        String l_nomLongFichierLog = null;
 
        Handler l_handlerFichier = null;
 
        FichierParametre l_fichierParametre = new FichierParametre("ressources/parametres.properties");
 
 
...
 
            // Recupération du nom du fichier des log
            l_nomLongFichierLog = l_fichierParametre.getaHashStockageParametre().get("nomFichierLog");
 
            // Le fichier des log est recrée (false)
            l_handlerFichier = new FileHandler(l_nomLongFichierLog, false);
 
            // Association au Handler du formatage de message personnifié
            l_handlerFichier.setFormatter(l_formatageDesLog);
            // Le fichier en sortie doit être encodé en UTF-8
            l_handlerFichier.setEncoding("UTF-8");
            // l_handlerFichier.setEncoding("CP1252");
 
            // Association du logger au Handler
            aJournal.addHandler(l_handlerFichier);
 
            // Mise à jour du niveau de message à ALL : tous les niveaux sont imprimés
            // Ici je mets le niveau de message à INFO : seul les message de niveai INFO et supérieur seront
            // imprimé dans la log
            aJournal.setLevel(Level.INFO);
...
le fichier C:\TEMP\referentiel\log\TraitementReferentielFlux.log, se rempli corretement.

MAIS lorsque j'execute mon programme sous Eclipse, je suis surpris de voir que dans la console eclipse, je n'ai qu'un peu près les 70 premières lignes de la log qui se remplie, puis plus rien !

Le fichier log TraitementReferentielFlux.log lui se rempli correctement.

Pourtant le fichier propreties de la JRE : C:\Program Files\Eclipse_DEV\Jdks\jdk1.8\jre\lib\logging.properties

est bien rempli pour le ConsoleHandler de la manière suivante :

...
# Limit the message that are printed on the console to INFO and above.
java.util.logging.ConsoleHandler.level = INFO
java.util.logging.ConsoleHandler.limit = 50000
# java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
# java.util.logging.ConsoleHandler.formatter = java.util.logging.XMLFormatter
# java.util.logging.ConsoleHandler.formatter = %1$tF %1$tT [%4$-7s][%2$s] %5$s %6$s%n
java.util.logging.ConsoleHandler.formatter = com.inetpsa.traitementreferentielflux.log.FormatageDesLog
...
Est ce que quelqu'un aurait une idée ?

Par avance merci.

Bien à vous.