Bonjour,
J'aimerais définir un Appender de Log4j par défaut:
Le problème est que si je défini un autre appender dans un fichier log4j.properties, l'affichage de logs est en double. Donc j'aimerai trouver une condition du genre, si un appender est déjà défini, ne pas créer mon propre appender. Et c'est là que je bute.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 public static Logger logger = Logger.getLogger(MaClasse.class); public static final Logger monLogger = Logger.getLogger("com.xxx.yyy.monPackage"); PatternLayout layout = new PatternLayout("%d %-5p %m%n"); ConsoleAppender consoleAppender = new ConsoleAppender(layout); monLogger.addAppender(consoleAppender); monLogger.setLevel(Level.DEBUG);
Si j'appelle la méthode: logger.getAllAppenders() ou monLogger.getAllAppenders() ça me retourne un NullEnumeration. Comme si l'appender n'existait pas, mais pourtant il existe (défini au niveau supérieur).
J'ai essayé ceci: monLogger.getRootLogger().getAllAppenders().hasMoreElements() ça me retourne effectivement true lorsque dans le fichier log4j.properties je définis un appender au niveau root.
Mais lorsque je défini un appender au niveau com.xxx.yyy et rien au niveau root, là je suis coincé.
Encore une fois, je ne veux pas que les logs apparaissent en double et en même temps je veux éviter ce genre de message:Serait-il possible de savoir d'avance si à un niveau du package ou supérieur un appender a déjà été défini ou pas
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 log4j:WARN No appenders could be found for logger (com.bsb.is.xml2csv.Transformer). log4j:WARN Please initialize the log4j system properly
J'espère que j'étais clair...![]()
Partager