如何在Tomcat中将级别日志记录设置为DEBUG?

问题描述:

我想在tomcat中设置级别日志记录到DEBUG,但是在控制台中只有INFO和WARN输出。 有人可以告诉我什么是错的?如何在Tomcat中将级别日志记录设置为DEBUG?

我的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 

我的日志的例子:

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 
+0

对于Tomcat 8,请参阅:[Tomcat的8启用调试日志记录列出不需要的罐子](http://*.com/q/24821865/55075) – kenorb 2015-04-09 18:13:17

首先,使用级别名称为FINE,不DEBUG。假设一分钟即DEBUG实际上是有效的,因为它使下面的解释让更多的感觉......

Handler specific properties部分,你对这些处理的日志记录级别设置为DEBUG。这意味着处理程序将处理任何具有DEBUG级别或更高级别的日志消息。这并不意味着任何DEBUG消息实际上都会传递给处理程序。

Facility specific properties部分,您将几个明确指定的记录器的记录级别设置为DEBUG。对于那些伐木者,任何级别为DEBUG或以上的传递给处理程序。

默认日志记录级别为INFO,除了Facility specific properties部分中提到的日志记录程序外,所有日志记录程序都具有该级别。

如果你想看到所有FINE信息,补充一点:

.level = FINE 

但是,这会生成日志消息的一个巨大的数量。这可能更有用日志记录级别设置为您的代码:

your.package.level = FINE 

Tomcat 6/Tomcat 7日志文件以获取更多信息。有显示的示例logging.properties文件使用FINE而不是DEBUG

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

,也为您提供了额外的设置日志级别的示例:

# 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 
+0

它的工作原理!非常感谢理查德! – gennad 2010-11-09 05:19:26