Bonjour,
j utilise l'api logging pour logger des informations, et je les sauvegarde dans un fichier xml. Je voudrais desactiver l'affichage de ces logs dans la console. Comment faire?
Merci
Bonjour,
j utilise l'api logging pour logger des informations, et je les sauvegarde dans un fichier xml. Je voudrais desactiver l'affichage de ces logs dans la console. Comment faire?
Merci
Quelle API de logging utilises-tu ? java.util.logging ? log4j ? autre ?
Quelques tips Java & autres : mon blog
j utilises java.util.logging
Tu dois donc désactiver le ConsoleHandler pour tes loggers. Si tu initialises la log avec le fichier de propriété standard, il te suffit de supprimer le ConsoleHandler de la liste des handlers installés. Il te suffit donc de remplacer la ligneEnvoyé par flipper203par
Code : Sélectionner tout - Visualiser dans une fenêtre à part handlers=java.util.logging.ConsoleHandler,java.util.logging.FileHandlerceci en supposant que tu utilises le FileHandler pour écrire dans ton fichier XML.
Code : Sélectionner tout - Visualiser dans une fenêtre à part handlers=java.util.logging.FileHandler
Sinon si tu configure tes loggers de façon programmatique, supprime le ConsoleHandler de la liste des Handlers.
Au passage j'ai posté sur mon blog une entrée concernant l'utilisation d'un formatter pour l'API java.util.logging qui permet de paramétrer les loggers avec des informations du stylequi produit un output du type
Code : Sélectionner tout - Visualiser dans une fenêtre à part org.mycompany.myapp.msg-format={%S}-[{%l}] {%m}\nPlus d'infos sur mon blog.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 1154676830765-[FINER] it is a dummy message 1154676830765-[FINE] fake message 1154676830765-[WARNING] fake NPE message java.lang.NullPointerException: hey it's a fake NPE at fr.brouillard.util.logging.LogTester.<init>(LogTester.java:35) at fr.brouillard.util.logging.LogTester.main(LogTester.java:64)
Matthieu BROUILLARD
Quelques tips Java & autres : mon blog
Mais comment on fait pour supprimer la console de la liste des handlers en prog, je me doute que c est avec la fonction removeHandler, mais comment j identifie le ConsoleHandler de mon file handler?
Quand je fais un getHandlers, il ne me retourne que mon file handler ...
Poste un petit bout de code de ce que tu fais, ça aidera à aller plus vite.
PS : est-ce que tu as essayé de supprimer le ConsoleHandler du fichier par défaut : JR_HOME/lib/logging.properties ?
Quelques tips Java & autres : mon blog
Je prefere le faire par programmation plutot que par fichier de config.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 logger.addHandler(fh); fh.setFormatter(new LogXMLFormatter()); try { System.out.println("Handler 1: " + logger.getHandlers()[0].toString()); System.out.println("Handler 2: " + logger.getHandlers()[1].toString()); System.out.println(fh.toString()); } catch (Exception e) { // TODO: handle exception e.printStackTrace(); }
L'inconvéniant c'est que tu peux pas changer la configuration sans recompiler.Envoyé par flipper203
Chez moi en exécutant ton code j'ai qu'un seul Handler renvoyé par getHandlers() , celui que tu positionnes à la main.
Par contre, tout appel à logger.xxxx("un message") trace sur la console.
Par défaut, le framework java.util.logging utilise le fichier JRE_HOME/lib/logging.properties pour se configurer, donc :
- soit tu désactives la ligne : handlers= java.util.logging.ConsoleHandler dans le fichier de propriétés
- soit programmatiquement tu reset la configuration de la log :
Code : Sélectionner tout - Visualiser dans une fenêtre à part LogManager.getLogManager().reset();
Après un appel au reset ou après suppression de la ligne dans le fichier de propriétés, tu ne devrais avoir ta trace que dans ton Handler.
Matthieu BROUILLARD
Quelques tips Java & autres : mon blog
Merci,
j ai utilisé le reset et ca marche maintenant.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager