web-dev-qa-db-fra.com

Comment définir la journalisation de niveau sur DEBUG dans Tomcat?

Je voudrais définir la journalisation de niveau sur DEBUG dans Tomcat, mais dans la console, il ne reste que les sorties INFO et WARN. Quelqu'un pourrait-il me dire ce qui ne va pas?

Mon C:\Tomcat\logging.properties:

# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional DEBUGrmation regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
#
#     http://www.Apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

handlers = 1catalina.org.Apache.juli.FileHandler, 2localhost.org.Apache.juli.FileHandler, 3manager.org.Apache.juli.FileHandler, 4Host-manager.org.Apache.juli.FileHandler, Java.util.logging.ConsoleHandler

.handlers = 1catalina.org.Apache.juli.FileHandler, Java.util.logging.ConsoleHandler

############################################################
# Handler specific properties.
# Describes specific configuration DEBUG for Handlers.
############################################################

1catalina.org.Apache.juli.FileHandler.level = DEBUG
1catalina.org.Apache.juli.FileHandler.directory = ${catalina.base}/logs
1catalina.org.Apache.juli.FileHandler.prefix = catalina.

2localhost.org.Apache.juli.FileHandler.level = DEBUG
2localhost.org.Apache.juli.FileHandler.directory = ${catalina.base}/logs
2localhost.org.Apache.juli.FileHandler.prefix = localhost.

3manager.org.Apache.juli.FileHandler.level = DEBUG
3manager.org.Apache.juli.FileHandler.directory = ${catalina.base}/logs
3manager.org.Apache.juli.FileHandler.prefix = manager.

4Host-manager.org.Apache.juli.FileHandler.level = DEBUG
4Host-manager.org.Apache.juli.FileHandler.directory = ${catalina.base}/logs
4Host-manager.org.Apache.juli.FileHandler.prefix = Host-manager.

Java.util.logging.ConsoleHandler.level = DEBUG
Java.util.logging.ConsoleHandler.formatter = Java.util.logging.SimpleFormatter


############################################################
# Facility specific properties.
# Provides extra control for each logger.
############################################################

org.Apache.catalina.core.ContainerBase.[Catalina].[localhost].level = DEBUG
org.Apache.catalina.core.ContainerBase.[Catalina].[localhost].handlers = 2localhost.org.Apache.juli.FileHandler

org.Apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].level = DEBUG
org.Apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].handlers = 3manager.org.Apache.juli.FileHandler

org.Apache.catalina.core.ContainerBase.[Catalina].[localhost].[/Host-manager].level = DEBUG
org.Apache.catalina.core.ContainerBase.[Catalina].[localhost].[/Host-manager].handlers = 4Host-manager.org.Apache.juli.FileHandler

# For example, set the com.xyz.foo logger to only log SEVERE
# messages:
#org.Apache.catalina.startup.ContextConfig.level = DEBUG
#org.Apache.catalina.startup.HostConfig.level = DEBUG
#org.Apache.catalina.session.ManagerBase.level = DEBUG
#org.Apache.catalina.core.AprLifecycleListener.level=DEBUG

Exemple de mon journal:

INFO: Deploying configuration descriptor manager.xml
08.11.2010 1:06:42 org.Apache.catalina.startup.HostConfig deployWAR
INFO: Deploying web application archive spring-mvc-trial.war
08.11.2010 1:06:46 org.Apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory docs
08.11.2010 1:06:46 org.Apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory examples
08.11.2010 1:06:46 org.Apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory ROOT
08.11.2010 1:06:46 org.Apache.coyote.http11.Http11AprProtocol start
INFO: Starting Coyote HTTP/1.1 on http-8080
08.11.2010 1:06:46 org.Apache.coyote.ajp.AjpAprProtocol start
INFO: Starting Coyote AJP/1.3 on ajp-8009
08.11.2010 1:06:46 org.Apache.catalina.startup.Catalina start
INFO: Server startup in 3777 ms
08.11.2010 1:09:36 org.Apache.coyote.http11.Http11AprProtocol pause
INFO: Pausing Coyote HTTP/1.1 on http-8080
08.11.2010 1:09:36 org.Apache.coyote.ajp.AjpAprProtocol pause
INFO: Pausing Coyote AJP/1.3 on ajp-8009
08.11.2010 1:09:37 org.Apache.catalina.core.StandardService stop
INFO: Stopping service Catalina
08.11.2010 1:09:37 org.Apache.catalina.loader.WebappClassLoader clearReferencesJdbc
SEVERE: The web application [/spring-mvc-trial] registered the JBDC driver [com.mysql.jdbc.Driver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered.
08.11.2010 1:09:37 org.Apache.catalina.loader.WebappClassLoader clearReferencesThreads
SEVERE: The web application [/spring-mvc-trial] appears to have started a thread named [MySQL Statement Cancellation Timer] but has failed to stop it. This is very likely to create a memory leak.
08.11.2010 1:09:38 org.Apache.coyote.http11.Http11AprProtocol destroy
INFO: Stopping Coyote HTTP/1.1 on http-8080
08.11.2010 1:09:38 org.Apache.coyote.ajp.AjpAprProtocol destroy
INFO: Stopping Coyote AJP/1.3 on ajp-8009
65
gennad

Premièrement, le nom de niveau à utiliser est FINE, pas DEBUG. Supposons un instant que DEBUG soit réellement valide, car l'explication suivante est un peu plus logique ...

Dans le Handler specific properties section, vous définissez le niveau de journalisation de ces gestionnaires sur DEBUG. Cela signifie que les gestionnaires géreront tous les messages de journal de niveau DEBUG ou supérieur. Cela ne signifie pas nécessairement que tous les messages DEBUG sont effectivement transmis aux gestionnaires.

Dans le Facility specific properties section, vous définissez le niveau de consignation de quelques consignateurs nommés explicitement sur DEBUG. Pour ces enregistreurs, tout ce qui se trouve au niveau DEBUG ou supérieur sera transmis aux gestionnaires.

Le niveau de consignation par défaut est INFO, et en dehors des enregistreurs mentionnés dans le Facility specific properties section, tous les enregistreurs auront ce niveau.

Si vous voulez voir tous les messages FINE, ajoutez ceci:

.level = FINE

Toutefois, cela générera une grande quantité de messages de journal. Il est probablement plus utile de définir le niveau de journalisation de votre code:

your.package.level = FINE

Reportez-vous à la documentation de journalisation Tomcat 6 / Tomcat 7 pour plus d'informations. L'exemple de fichier logging.properties présenté ici utilise FINE à la place de DEBUG:

...
1catalina.org.Apache.juli.FileHandler.level = FINE
...

et vous donne également des exemples de définition de niveaux de journalisation supplémentaires:

# For example, set the com.xyz.foo logger to only log SEVERE
# messages:
#org.Apache.catalina.startup.ContextConfig.level = FINE
#org.Apache.catalina.startup.HostConfig.level = FINE
#org.Apache.catalina.session.ManagerBase.level = FINE
68
Richard Fearn