2011-05-20 3 views
1

Ok, donc j'ai cette stupide bibliothèque que j'utilise (documentum DFC), qui fait une vérification pour voir si Logger.getRootLogger().getAllAppenders().hasMoreElements() == false, si c'est le cas, il réinitialise mon niveau rootLogger à WARN, ce qui détruit ma journalisation après ça . Donc, dans un effort pour arrêter cela, je tente d'ajouter un appender à l'enregistreur de racine juste pour voir si je peux l'obtenir pour arrêter de faire ce code. Cependant quand j'appelleAjout de programmeurs Log4J par programme

Logger.getRootLogger().addAppender(new ConsoleAppender()); cette fonction est encore à venir faux. Est-ce que quelqu'un a rencontré cela? J'utilise quelle que soit la version de log4j fournie avec jboss 6, elle ne dit pas dans le nom du fichier .jar.

+0

Peut-être que log4j est chargé à partir de deux chargeurs de classe différents, donc vous avez deux enregistreurs de racine différents ? Ou peut-être un autre code supprime l'appender après l'avoir ajouté? –

+0

@ user428916: Si vous voulez vérifier la valeur false, ne faites pas l'opérateur '=='. Utilisez-le simplement comme ceci: if (! Logger.getRootLogger(). GetAllAppenders(). HasMoreElements()) '. –

Répondre

0

J'ai des problèmes similaires. Je peux ajouter un appender, en écrivant à une chaîne de mémoire mais cela ne fonctionne jamais. Pour moi il semble que JBoss utilise/modifie log4J d'une manière, que cette modification de code n'est plus possible, voir aussi ici: https://issues.jboss.org/browse/JBAS-9318

Questions connexes