2010-06-08 6 views
2

J'utilise Tomcat 6, et voici mon logging.properties:Tomcat6 ignore logging.properties partiellement

handlers = org.apache.juli.FileHandler, java.util.logging.ConsoleHandler 
.level=FINE 

org.apache.catalina.core.ApplicationContext.level = OFF 

org.apache.juli.FileHandler.level = ALL 
org.apache.juli.FileHandler.directory = ${catalina.base}/logs 
org.apache.juli.FileHandler.prefix = mylog. 

java.util.logging.ConsoleHandler.level = FINE 
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter 

D'une part, Tomcat semble lire ce fichier, car il enregistre correctement les fichiers journaux avec le préfixe "mylog" et imprime uniquement les messages avec le niveau de journal FINE et ci-dessus. D'autre part, il continue à écrire des messages journaux comme ceci:

Jun 8, 2010 9:53:30 PM org.apache.catalina.core.ApplicationContext log 
SEVERE: Error writing messages 
ClientAbortException: java.net.SocketException: Broken pipe 

, je voulais supprimer tous les messages du journal de cette classe, car ils inondent mon fichier journal, et l'erreur est sans importance pour moi. Alors pourquoi la ligne suivante est-elle ignorée?

org.apache.catalina.core.ApplicationContext.level = OFF 

Existe-t-il un autre moyen de supprimer la sortie de journal de cette classe?

Répondre

2

org.apache.catalina.core.ApplicationContext n'est pas le nom de l'enregistreur utilisé dans ApplicationContext, il utilise le journal d'un composite: le journal de org.apache.catalina.core.StandardContext. Peut-être parce que ce sont des enregistreurs de contexte. Ensuite, ils doivent être configurés différemment

quelque chose comme

org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].level = INFO 
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].handlers = \ 

Je ne l'ai pas fait auparavant, je ne l'ai jamais utilisé les installations d'exploitation forestière de tomcat, et il n'y a pas beaucoup info pour trouver

+0

j'ai changé la ligne de org.apache.catalina.core.StandardContext.level = OFF mais il a toujours le même journal sortie comme avant. – Bob

+0

Définir org.apache.catalina.core.ContainerBase.level = OFF a fait l'affaire. Merci! – Bob

+0

pas de problème, merci 2 kschneid aussi – Redlab

2

I pense Redlab est sur la bonne voie - notez que la racine du nom de l'enregistreur est org.apache.catalina.core.ContainerBase, pas org.apache.catalina.core.StandardContext. La méthode org.apache.catalina.core.ContainerBase.logName() contrôle le nom du consignateur et commence explicitement avec ContainerBase.class.getName(). Juste pour clarifier, StandardContext s'étend ContainerBase.