`
reniaL
  • 浏览: 94087 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Tomcat 6.0 日志处理

阅读更多

本文主要讲的是 Tomcat 自己本身对日志的处理,而非每个 webapp 的日志配置(现在 webapp 一般会独立配置日志)。

内容基本上来自官方文档:http://tomcat.apache.org/tomcat-6.0-doc/logging.html

 

一、Webapp 记录日志的方法

Tomcat 中的 webapp 有三种方法记录日志:

  • 使用 java.util.logging
  • 使用 Servlet 标准中的日志记录方法 javax.servlet.ServletContext.log(...)
  • 使用任意其它的日志框架(例如 Log4j)

一般来说,每个 webapp 使用的日志框架都是独立的,不会影响其他 webapp。但如果用的是 Java 原生的 java.util.logging,由于它是通过系统加载的,因此各个 webapp 之间会共享同一个日志配置。

 

二、什么是 JULI

Tomcat 默认会使用 java.util.logging (JUL) 日志框架,但重写了一些实现,以解决一个 JVM 中 JUL 只能使用一个配置文件的问题,满足多个 webapp 独立配置日志的需求。这个实现就叫 JULI (['dʒu:li])。

 

全局日志配置

  • 默认使用 ${catalina.base}/conf/logging.properties,这个路径在 Tomcat 启动脚本中通过 java.util.logging.config.file 系统属性指定
  • 如果上述默认配置文件不可用(不存在或无权限读取),则使用 JRE 中的 ${java.home}/lib/logging.properties

webapp 独立日志配置

  • JULI 支持每个 ClassLoader (也就是每个 webapp) 使用自己的日志配置,配置文件位于 {webapp]/WEB-INF/classes/logging.properties

控制台

  • 在 Linux 上运行 Tomcat 时,控制台的输出 (System.err/out) 同时会被保存到文件 catalina.out 中,这个名称是通过运行脚本指定的
  • 在 Windows 上,如果以服务的形式运行 Tomcat,也会将控制台输出保存到文件(文档没说文件名是什么。。。),如果不以服务的形式运行,则不会保存控制台输出

三、JULI 对 JUL 的扩展

  • 配置文件中能通过 ${systemPropertyName} 的格式使用系统属性
  • Handler
    • JUL 中,handler 名称即为类的完整限定名,一个类只能创建一个 handler。而 JULI 的 handler 名称可以在类的完整限定名之前加前缀,该前缀以数字开头,以 . 结尾(注意中间不能出现 .),例如 5portallocal.
    • JULI 定义一些 handler 类,例如 org.apache.juli.FileHandler,支持缓冲。
  • Logger
    • 每个 logger 可以指定多个 handler(Java 6 的 JUL 开始支持)
    • root logger 可以使用 .handler 指定 handler:
      • org.apache.catalina.core.ContainerBase.[Catalina].[localhost].useParentHandlers = true
    • 注意,如果一个 logger 已经指定了 handler,则默认不会将日志传递给上级 logger,但可以通过 useParentHandlers 修改
      • org.apache.catalina.core.ContainerBase.[Catalina].[localhost].useParentHandlers = true

四、生产环境中的注意事项

  • root logger 默认配置了 FileHandler 和 ConsoleHandler,而控制台输出一般又被保存到文件中,导致相同的日志被保存了2份,可以考虑将 ConsoleHandler 从 root logger 中去除。
  • 删除没必要的 handler,例如 host-manager 的。
  • handler 默认使用系统默认编码,可以考虑显式指定编码。
  • 考虑配置 access log,可参考 http://tomcat.apache.org/tomcat-6.0-doc/config/valve.html#Access_Log_Valve

五、其它

Tomcat 也能配置为使用 Log4j 代替 JULI 来处理日志,详见 http://tomcat.apache.org/tomcat-6.0-doc/logging.html#Using_Log4j

1
0
分享到:
评论

相关推荐

    Tomcat6.0——压缩包下载

    【标题】"Tomcat6.0——压缩包下载"涉及的是Apache Tomcat 6.0版本的安装和使用,这是一个开源的Java Servlet容器,广泛应用于Web应用的部署和开发。Tomcat6.0是该软件的一个重要里程碑,因为它在当时的Java EE 5...

    tomcat6.0的安装版

    【描述】:“tomcat6.0的安装版tomcat6.0的安装版tomcat6.0的安装版tomcat6.0的安装版tomcat6.0的安装版” 描述中的重复强调了Tomcat6.0的安装版,暗示了这个压缩包可能是为用户提供了一键式的安装体验,帮助用户...

    tomcat6.0是一款免费开源的jsp服务器

    《深入理解Tomcat6.0:免费开源的JSP服务器》 Tomcat6.0,作为Apache软件基金会的旗下面向Java的Web应用服务器,以其免费开源的特性,深受开发者们的喜爱。它不仅是一个小巧而高效的JSP服务器,还包含了完整的HTTP...

    tomcat6.0应用部署服务器

    【标题】:“Tomcat6.0应用部署服务器” 在IT领域,Tomcat6.0是一个广泛应用的开源Web服务器和Servlet容器,它实现了Java Servlet和JavaServer Pages(JSP)技术。Tomcat6.0是Apache软件基金会Jakarta项目的一部分...

    tomcat6.0 配log4j日志的必须文件及配置过程

    tomcat6.0 配log4j日志的必须文件及配置过程 tomcat6-------lib | |--------tomcat-juli-adapters.jar | |--------log4j.jar | |--------log4j.properites | |----bin |--------tomcat-juli.jar 最后把log4...

    tomcat6.0通用版本

    在解压后的"tomcat6.0"文件中,通常会包含以下几个关键部分: - `bin`目录:包含了启动和停止Tomcat的脚本,以及一些管理工具。 - `conf`目录:存放配置文件,如`server.xml`定义了服务器的配置,`context.xml`管理...

    Tomcat 6.0 安装版

    9. **日志与监控**:Tomcat提供了详细的日志记录功能,帮助开发者诊断和解决问题。同时,通过JMX(Java Management Extensions)可以对Tomcat进行远程监控和管理。 10. **社区支持**:作为开源项目,Tomcat拥有庞大...

    Tomcat6.0.x 包

    【标题】: "Tomcat6.0.x 包" 【描述】: "Tomcat6.0windows安装程序 含有源代码" 这个压缩包文件包含了Apache Tomcat 6.0.x版本的安装程序,特别针对Windows操作系统进行了优化。Tomcat是一款广泛使用的开源Java ...

    Apache tomcat6.0 java开发工具 Apache tomcat6.0 Apache tomcat6.0

    Tomcat 6.0的发布为开发者提供了一个稳定的平台,能够处理大多数的Web服务需求。 首先,让我们深入了解一下Tomcat的组成部分和主要功能: 1. **Catalina**:这是Tomcat的核心,实现了Servlet和Java EE的Web容器部分...

    解压版tomcat6.0

    标题中的“解压版Tomcat6.0”指的是Apache Tomcat服务器的6.0版本的非安装版,这种版本不需要经过传统的安装过程,用户只需将其下载并解压缩到指定目录即可开始使用。Tomcat是一个开源的Java Servlet容器,主要用于...

    tomcat 6.0

    在压缩包文件"tomcat6.0"中,通常会包含以下组件: 1. **bin目录**:包含了启动和停止Tomcat的脚本,以及管理工具。 2. **conf目录**:存放配置文件,如server.xml、web.xml等,用于设置服务器的行为和配置Web应用...

    tomcat 6.0安装包下载

    **Tomcat 6.0 安装与配置详解** Tomcat 6.0 是一个流行的开源Java Servlet容器,由Apache软件基金会开发,主要用于部署和运行Java Web应用程序。它实现了Servlet和JSP规范,是Java EE web应用服务器的一种轻量级...

    web服务器 tomcat6.0

    9. **错误处理与调试**:Tomcat提供详细的日志记录,帮助开发者诊断问题。通过调整`logging.properties`文件,可以控制日志级别和输出信息。 10. **升级与迁移**:尽管Tomcat 6.0已经过时,但了解其工作原理对理解...

    tomcat6.0tomcat6.0

    1. **Servlet 2.5规范**:Tomcat 6.0支持Servlet 2.5规范,提供了更多的API和功能,如过滤器链的改进、URL编码解码的改进以及异步处理支持等。 2. **JSP 2.1规范**:Tomcat 6.0支持JSP 2.1规范,引入了表达式语言...

    Tomcat6.0

    "tomcat-6.0.10.exe"是Tomcat6.0的安装程序,其中".exe"是Windows操作系统中的可执行文件扩展名,表示这是一个用于在Windows环境下安装Tomcat6.0的程序。版本号"6.0.10"表示这是6.0系列中的第10个修订版。 **知识点...

    Tomcat6.0.rar

    标题“Tomcat6.0.rar”表明这是一份包含Tomcat 6.0版本的压缩文件,用于在用户的计算机上安装和运行这个流行的Java Servlet容器。Tomcat是Apache软件基金会的项目之一,它是一个开源的Web服务器和应用服务器,特别...

    tomcat6.0tomcat6.0.rartomcat6.0.rartomcat6.0

    标题中的“tomcat6.0”指的是Apache Tomcat 6.0版本,这是一个开源的Java Servlet容器,主要用于部署和运行Java EE(Enterprise Edition)应用程序,特别是JSP(JavaServer Pages)和Servlet。Tomcat作为轻量级应用...

    tomcat 6.0 64位

    总结,"Tomcat 6.0 64位"是专为64位操作系统设计的Web服务器,它提供了对Servlet 2.5和JSP 2.1的支持,以及多线程处理、连接器功能、安全管理等特性。64位版本在内存管理和性能上具有显著优势,适用于需要处理大量...

    apache tomcat 6.0 安装版

    Apache Tomcat 6.0是Java Servlet和JavaServer Pages(JSP)的开源Web应用程序服务器,由Apache软件基金会开发和维护。它是一个轻量级应用服务器,特别适合部署Java Web应用。以下是对Apache Tomcat 6.0安装版的详细...

    tomcat6.0的源代码

    3. **Juli**:这是Tomcat的内置日志系统,提供了一种更灵活的日志记录方式,允许开发者自定义日志输出。 4. **Connector**:连接器组件负责接收和发送网络请求,Tomcat 6.0支持HTTP、AJP等多种协议。 5. **...

Global site tag (gtag.js) - Google Analytics