2010-11-02 9 views
5

J'utilise org.apache.log4j.Logger pour la journalisation et je développe un jsp juste à des fins de surveillance. Ce jsp utilise des classes qui écrivent des logs (niveau INFO) non intéressants pour ce monitoring, mais ennuyants, tant que je veux exécuter ce jsp très souvent.Comment faire pour désactiver un journal pour un fil

Alors, ma question est la suivante: Y at-il un moyen de désactiver ces journaux INFO juste pour le thread où mon jsp est en cours d'exécution?

Si ce n'est pas le cas, peut-être que cette approche pourrait payer la facture: Est-il possible de dire au niveau log4j pour une classe donnée est FATAL juste pour quelques millisecondes?

Répondre

4

Il n'y a pas de moyen facile de le faire en utilisant la simple configuration log4j. Toutefois, vous pouvez demander à votre code d'installer un filtre personnalisé sur l'enregistreur approprié.

Voir la référence d'interface ici:

http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/spi/Filter.html

  1. Construisons un objet qui implémente le filtre que vous voulez.
  2. Trouver l'enregistreur à l'aide LogManager.getLogger ("loggername")
  3. Insérez le filtre.
0

L'ID de thread est-il consigné? Si oui, ne pouvez-vous pas simplement utiliser grep -v pour supprimer les lignes ennuyeuses qui sont pour ce niveau de thread et INFO?

+0

Je pourrais, mais mon problème est sur le contenu du fichier, pas sur son "chat". Merci –

+0

Je ne suis pas sûr de ce que vous entendez par là. Pouvez-vous développer? –

+2

Ma surveillance jsp est appelée toutes les 30 secondes, donc le journal va grandir beaucoup. Je ne veux pas que jsp vider n'importe quelle ligne dans le fichier journal. Ce que je veux, c'est que ces lignes ne soient pas jetées n'importe où –

Questions connexes