J'aimerais pouvoir dire à la JVM d'arrêter de connecter un certain niveau de messages à un moment de la chaîne d'exécution. À un moment donné, je veux seulement enregistrer des messages avec est là un moyen plus propre d'obtenir la même logique, c'est-à-dire Définissez une variable globale qui empêcherait d'imprimer pour vous connecter sauf si sévère? J'ai besoin de distinguer entre la sortie de la console (dans le test) et la sortie de fichier en direct, donc je pourrais potentiellement régler ces niveaux sur le gestionnaire (console et fichier)? P> P> niveau grave code>, alors je pensais faire cela:
3 Réponses :
Pour contrôler votre configuration de l'application Dynamiquement, une manière courante est d'utiliser JMX. P>
JConsole, une partie de la JDK, vous permet de contrôler les MBEANs manuellement, mais vous pourriez également y accéder de manière programmative. P>
Vous pouvez utiliser JMX pour contrôler Mbeans comme décrit dans Cette page . P >
avec log4j Vous pouvez modifier le niveau de l'enregistreur racine.
Ceci peut fonctionner: P>
logManager.getLogger( "" ).setLevel(Level.SEVERE);
Répondre à ma propre question:
C'est exactement ce dont j'avais besoin: p>
Cela a fonctionné pour moi aussi. L'avantage de cette approche pure Java est que je peux aussi le faire à Groovy, lorsque les bibliothèques ont trop de journalisation au niveau par défaut (je vous regarde Apache Sshd).
Je pense que vous avez besoin de fichiers de propriétés de journalisation Java. Cochez cette case JavaPracces.com/topic/topicaction.do?id=143
Non, je veux utiliser des changements dynamiques