2011-07-27 1 views
13

J'utilise une application Java qui dépend de quelques bibliothèques (Axis2) qui utilisent log4j. Je n'utilise pas log4j et n'ai aucun fichier de configuration. Je voudrais juste désactiver complètement log4j et supprimer tous les avertissements qu'il crache. En ce moment, quand je lance mon application, quand j'appelle une des méthodes de la bibliothèque, je vois:Comment désactiver les avertissements log4j?

log4j:WARN No appenders could be found for logger 
(org.apache.axis2.deployment.FileSystemConfigurator). 
log4j:WARN Please initialize the log4j system properly. 

Y at-il une méthode statique log4j désactiver je peux appeler? J'ai essayé Logger.getRootLogger(). RemoveAllAppenders(); et cela n'a pas fonctionné (je vois toujours les avertissements).

Répondre

23

Vous pouvez essayer

Logger.getRootLogger().setLevel(Level.OFF); 
+1

Cela fonctionne tant que l'appel setLevel se déclenche avant le premier message de journal. –

+0

Super, merci! Juste dû ajouter le log4j-x-x.jar au Classpath, fonctionne très bien. –

7

Les bibliothèques Apache sont horriblement peu convivial. Si je voulais enregistrer, je l'aurais fait moi-même. Pour désactiver la journalisation:

  1. Ajoutez log4j-1.2.xxx.jar à votre CLASSPATH.
  2. Ensuite, ajoutez ce qui suit à votre code Java avant l'enregistrement commence:

    org.apache.log4j.Logger.getRootLogger() setLevel (org.apache.log4j.Level.OFF);.

1

Assurez-vous d'importer org.apache.log4j.Level, pas le java.util.logging.Level, sinon vous obtenez une erreur « La méthode setLevel (niveau) dans la catégorie de type n'est pas applicable pour les arguments (Level) "

Questions connexes