`
reniaL
  • 浏览: 93483 次
  • 性别: 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 配log4j日志的必须文件及配置过程

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

    Tomcat6.x+IIS6+jk2最新整合

    软件环境:Window server 2003+ IIS6.0 + Tomcat6.0 + JK2 整了大半天,不过直得整合的好处就不说了 1.导入注册表 iis+tomcat.reg 文件说明 Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\...

    Tomcat6.x+IIS6+jk2 整合

    软件环境:Window server 2003+ IIS6.0 + Tomcat6.0 + JK2 整了大半天,不过直得整合的好处就不说了 1.导入注册表 iis+tomcat.reg 文件说明 Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\...

    jshERP开源进销存软件

    WEB: Tomcat6.0+ Maven: Maven3.2.3+ 为方便大家搭建开发环境,分享了下载地址 http://pan.baidu.com/s/1nuKnlNV 运行环境 WEB服务器:Tomcat6.0+ 数据库服务器:Mysql5.1 JAVA平台: JRE1.6+ 操作系统:Windows、...

    struts2+spring+ibatis+mysql

    struts2+spring+ibatis+mysql AOP日志管理,异常捕获 tomcat6.0+jdk1.6

    apache-tomcat-6.0.29

    tomcat这个版本比较稳定,所以传上来供大家使用,亲测可用

    windows_server2003+tomcat+iis6整合

    workers.tomcat_home=D:\Program Files\Apache\Tomcat 6.0 # jdk物理路径 workers.java_home=D:\develop\jdk6 ps=\ worker.list=ajp13 worker.ajp13.port=8009 worker.ajp13.host=localhost worker.ajp13.type=...

    tomcat6、7、8、9, maven3.5

    的Apache Tomcat 7.x的建立在Tomcat中6.0.x的改进和实现的Servlet 3.0, JSP 2.2,EL 2.2和 WebSocket的1.1规格。除此之外,它还包括以下改进: Web应用程序内存泄漏检测和预防 提高了Manager和Host Manager应用...

    一次tomcat自动关闭的bug解决

    前言 最近一个运行了4年的javaee web项目,经常接到客户反馈系统无法打开。... tomcat6.0 32位jdk7.0 window server2003 32位,32G内存。 查看日志,如果tomcat闪崩,都会在tomcat的bin目录下生成以”

    WebChecker网站运行监控精灵6.0

    1、支持各种网站服务,如:iis, apache, tomcat, Weblogic等; 2、WebChecker以系统服务运行,不需要登录,重启后会自动运行; 3、全面监控,无论是网络连接出现问题、服务器问题、web程序问题、网络攻击等,都可以...

    jsp+sqlserver库存管理系统 | 毕业设计

    MyEclipse8.5以上 + Tomcat6.0 + JDK5.0 + Sqlserver2000以上版本都支持 程序功能: (1)用户类别:登录系统的身份定为二种,一是管理员(企业领导),二是员工,只有被授权的用户才可以使用本系统的资源。 (2)权限...

    jsp+sqlserver库存管理系统精品毕业设计

    MyEclipse8.5以上 + Tomcat6.0 + JDK5.0 + Sqlserver2000以上版本都支持 程序功能: (1)用户类别:登录系统的身份定为二种,一是管理员(企业领导),二是员工,只有被授权的用户才可以使用本系统的资源。 (2)权限...

    jsp的库存管理系统

    MyEclipse5.5 + Tomcat6.0 + JDK5.0 + Sqlserver2000 程序功能: (1)用户类别:登录系统的身份定为二种,一是管理员(企业领导),二是员工,只有被授权的用户才可以使用本系统的资源。 (2)权限管理:系统需要经过...

    java个人博客毕业论文

    5.1.1 JSP支持平台Tomcat6.0 26 5.1.2 JDK概述及配置 27 5.1.3 开发工具Dreamweaver 8 28 5.2 系统中JSP技术的应用 29 5.2.1 用JavaBean 封装数据库操作 29 5.2.2 字符编码过滤器EncodingFilter 30 5.3 系统主要功能...

    jsp sql2000库存管理系统 v1.0.rar

     MyEclipse5.5 Tomcat6.0 JDK5.0 Sqlserver2000 程序功能: (1)用户类别:登录系统的身份定为二种,一是管理员(企业领导),二是员工,只有被授权的用户才可以使用本系统的资源。 (2)权限管理:系统需要经过有效的...

    企业快信项目

    (2)选择开始菜单中的“所有程序\Apache Tomcat 6.0\Monitor Tomcat”命令,这时在windows的系统托盘中会显示标识Tomcat服务器启动状态的图标,如果显示为,则说明Tomcat服务器没有启动,这时可以在该图标上单击...

    J2EE项目整合FLEX项目.doc

    J2EE项目整合FLEX项目 应一个朋友请求,给他写一个J2EE与FLEX的整合DEMO,前些日子项目紧,没来得及,现在有点时间,呵呵,...我用的环境是MyEclipse6.0+JDK5.0+Tomcat5.5+ Flex3.0 Builder For Eclipse Plugin+LCDS

    gerenboke.rar_博客 jsp

    该系统实现的是个人英文博客,博主可以添加日志,查找日志。采用技术为servlet+jsp+java, 开发平台为Myeclipse6.0+Tomcat5.5+Mysql5.1

    LambdaProbe 中文包下载

    支持的Tomcat 服务器版本: 5.0, 5.5, 6.0. 当然还有一个地方需要设置, 请在 conf/tomcat-users.xml 中添加 manager 账户, probe 需要这个账户才能正确登录使用. 如果不知道怎么做, 你可以把文件内容改成这样即可...

    大厂学院SVIP十门合集|完结无秘

    Web请求处理原理 数据访问层框架原理 架构与设计思维模式 程序中的数学 数据分析 机器智能算法剖析与应用 云原生 自动化DevOps 流量治理 链路监控 弹性扩容 分布式存储Redis6.0 深入云原生 高并发开发基石-JUC 全...

Global site tag (gtag.js) - Google Analytics