tomcat6 日志配置说明
更详细的解释请认真阅读 官方文档日志介绍 http://tomcat.apache.org/tomcat-6.0-doc/logging.html
一、tomcat 中应用记录日志的三种方式
- 使用 java.util.logging (tomcat 默认使用的)
- 使用 java servlet 提供的日志API javax.servlet.ServletContext.log(...)
- 使用日志框架 比如log4j
二、JULI (后续的logging.properties里可以看到)
关于java.util.logging
API,tomcat有其自己的实现 被称为"JULI",它是一个常用的日志管理实现,它能感知tomcat中运行的多个不同的application(它们有各自的类加载器),它支持针对每一个部署的应用
单独配置其日志配置(logging.properties)。
使用tomcat的启动脚本启动服务器(java)时,java.util.logging将自动生效,但如果你使用的是其他的启动方式(非脚本):比如集成到IDE里启动,则需要自己关注是否生效。
1、全局日志配置
默认使用 ${catalina.base}/conf/logging.properties 目录下的配置,此路径可以在启动时在脚本中通过参数java.util.logging.config.file 设置。如果没有配置上述文件,则会使用
${java.home}/lib/logging.properties路径下配置
2、Application
对于部署在tomcat中的应用,如果想看到更多的详细信息,可以将配置文件放置在 WEB-INF/classes目录下
logging.properties配置的例子
handlers = 1catalina.org.apache.juli.FileHandler, \ 2localhost.org.apache.juli.FileHandler, \ 3manager.org.apache.juli.FileHandler, \ java.util.logging.ConsoleHandler .handlers = 1catalina.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler ############################################################ # Handler specific properties. # Describes specific configuration info for Handlers. ############################################################ 1catalina.org.apache.juli.FileHandler.level = FINE 1catalina.org.apache.juli.FileHandler.directory = ${catalina.base}/logs 1catalina.org.apache.juli.FileHandler.prefix = catalina. 2localhost.org.apache.juli.FileHandler.level = FINE 2localhost.org.apache.juli.FileHandler.directory = ${catalina.base}/logs 2localhost.org.apache.juli.FileHandler.prefix = localhost. 3manager.org.apache.juli.FileHandler.level = FINE 3manager.org.apache.juli.FileHandler.directory = ${catalina.base}/logs 3manager.org.apache.juli.FileHandler.prefix = manager. 3manager.org.apache.juli.FileHandler.bufferSize = 16384 java.util.logging.ConsoleHandler.level = FINE 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 = INFO org.apache.catalina.core.ContainerBase.[Catalina].[localhost].handlers = \ 2localhost.org.apache.juli.FileHandler org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].level = INFO org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].handlers = \ 3manager.org.apache.juli.FileHandler # For example, to log debug messages in ContextConfig and HostConfig # classes and to log only warnings and errors in other # org.apache.catalina.** classes, uncomment these lines: #org.apache.catalina.startup.ContextConfig.level = FINE #org.apache.catalina.startup.HostConfig.level = FINE #org.apache.catalina.level = WARNING
三、关于tomcat中开启access.log日志的方法(默认关闭)
修改如下配置文件 tomcat/conf/server.xml
<!-- <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log." suffix=".txt" pattern="common" resolveHosts="false"/> -->
将上述注释掉的代码放开,就会产生access.log文件.
四、具体实践应用
在使用tomcat部署项目启动后(特别是使用struts,spring框架等),有的错误打印的很模糊,仅说明error,没有打印具体错误原因
例:
org.apache.catalina.core.StandardContext startInternal
SEVERE: Error listenerStart
org.apache.catalina.core.StandardContext startInternal
SEVERE: Context [/******] startup failed due to previous errors
想获取更多的报错信息,可以新建logging.properties配置文件,放置到该应用WEB-INF/calsses目录下
handlers = org.apache.juli.FileHandler, java.util.logging.ConsoleHandler ############################################################ # Handler specific properties. # Describes specific configuration info for Handlers. ############################################################ org.apache.juli.FileHandler.level = FINE org.apache.juli.FileHandler.directory = ${catalina.base}/logs org.apache.juli.FileHandler.prefix = error-debug. java.util.logging.ConsoleHandler.level = FINE java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
再次启动tomcat,报错日志会生成到logs目录下