`
侯上校
  • 浏览: 223418 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

tomcat日志系统设计

 
阅读更多
开门见山吧,这次也拿StandardServer.java类中来说吧!
其实tomcat使用了JDK的Logger类来实现的
第一:为每一个类健一个日志类的对象如下:
private static Log log = LogFactory.getLog(StandardServer.class);
LogFactory.java类里的实现过程如下:
private static LogFactory singleton=new LogFactory();
public static Log getLog(Class clazz)
        throws LogConfigurationException {
        return (getFactory().getInstance(clazz));

    }
 public static LogFactory getFactory() throws LogConfigurationException {
        return singleton;
    }
public Log getInstance(Class clazz)
        throws LogConfigurationException {
        return getInstance( clazz.getName());
    }
public Log getInstance(String name)
        throws LogConfigurationException {
        return DirectJDKLog.getInstance(name);
    }
DirectJDKLog.java类里的实现如下:
 static Log getInstance(String name) {
        return new DirectJDKLog( name );
    }
public DirectJDKLog(String name ) {
        logger=Logger.getLogger(name);        
    }
好了,接下来就可以使用日志类了
 public void start() throws LifecycleException {

        // Validate and update our current component state
        if (started) {
            log.debug(sm.getString("standardServer.start.started"));
            return;
        }
DirectJDKLog.java中实现日志各个级别的打印:
public final void debug/info/trace/warn(Object message) {
        log(Level.FINE, String.valueOf(message), null);
    }
主要工作的地方来了……
 
    private void log( Level level, String msg, Throwable ex ) {
        if (logger.isLoggable(level)) {
            // Hack (?) to get the stack trace.
            Throwable dummyException=new Throwable();
            StackTraceElement locations[]=dummyException.getStackTrace();
            // Caller will be the third element
            String cname="unknown";
            String method="unknown";
            if( locations!=null && locations.length >2 ) {
                StackTraceElement caller=locations[2];
                cname=caller.getClassName();
                method=caller.getMethodName();
            }
            if( ex==null ) {
                logger.logp( level, cname, method, msg );
            } else {
                logger.logp( level, cname, method, msg, ex );
            }
        }
    }        
这个函数里有一个见解的地方,就是tomcat获取堆栈信息,我们在自己的项目中可以根据实际情况来进行某个位置的堆栈分析等工作,
分享到:
评论

相关推荐

    最新tomcat日志查看包

    这个“最新Tomcat日志查看包”正是为了帮助我们更好地管理和分析Tomcat的日志而设计的。 首先,我们需要理解为什么只依赖控制台打印的错误信息是不足的。在开发和调试阶段,控制台输出可以提供实时反馈,但在生产...

    tomcat配置生成的日志文件按照日期新建工具

    首先,我们要了解Tomcat的日志系统。Tomcat默认使用了Java的`java.util.logging`框架,也支持通过Log4j或者Logback等第三方日志框架进行日志处理。在Tomcat的`conf/logging.properties`或`conf/log4j.properties`...

    Logstash收集Tomcat集群日志的解决方案.txt

    本文将详细介绍如何利用Logstash和Elasticsearch构建一套高效的企业级ELK(Elasticsearch, Logstash, Kibana)日志收集与分析系统,以实现对Tomcat集群日志的有效管理和分析。 #### 技术选型与架构设计 - **技术...

    Tomcat日志控制脚本

    ### Tomcat日志控制脚本:精细化管理与自动轮换机制 在IT运维与系统管理领域,日志文件是至关重要的资源,它们记录了应用程序运行过程中的关键信息,包括错误、警告以及正常运行状态下的各种事件。对于Apache ...

    dwr+struts+hibernate+jquery tomcat日志查询系统

    【标题】"dwr+struts+hibernate+jquery tomcat日志查询系统"是一个基于Web的应用程序,主要用于实时、高效地查询Tomcat服务器的日志内容,并且具备分页功能,提供良好的用户体验。这个系统整合了多个技术框架,下面...

    tomcat-log.zip

    让我们深入探讨一下这些文件以及它们如何在 Tomcat 日志系统中工作。 首先,`tomcat-juli.jar` 是 Tomcat 自己的日志实现,全称为 JULI (Java Util Logging Implementations)。JULI 是为了解决 Java 标准日志 API...

    linux系统Tomcat重启shell脚本

    本文将详细介绍 Linux 系统 Tomcat 重启 shell 脚本,包括脚本的设计思路、实现细节和应用场景。 标题解释 Linux 系统 Tomcat 重启 shell 脚本指的是在 Linux 操作系统中使用 shell 脚本来重启 Apache Tomcat ...

    基于Java web的工作日志管理系统文档 .doc

    3. 系统设计 3.1 系统运行环境 3.1.1 开发环境 系统开发将使用Java编程语言,结合Spring Boot框架、Hibernate ORM工具以及Thymeleaf模板引擎,构建后端服务;前端采用HTML、CSS和JavaScript,可能结合Vue.js或...

    基于Java的员工日志管理系统的设计与实现

    #### 系统设计 ##### 系统功能模块设计 系统被划分为八个主要的功能模块: 1. **用户登录与注册**:用于用户身份验证和账户管理。 2. **日志/计划编写**:员工提交日志和工作计划的地方。 3. **日志/计划审批**:...

    myslipse+sqlserver+tomcat运行银行系统

    在本项目中,我们主要涉及三个核心技术:MyEclipse、SQL Server和Tomcat,它们共同协作来运行一个银行系统。接下来,我们将详细讨论这三个技术及其在银行系统中的应用。 首先,MyEclipse是一款强大的集成开发环境...

    SmartTomcat-4.2.0.zip

    SmartTomcat 4.2.0是一款专为管理Apache Tomcat服务器而设计的强大工具,旨在简化Tomcat的部署、监控和调试过程,提升开发和运维效率。在IT行业中,Tomcat作为一款流行的Java Servlet容器,广泛应用于Web应用的开发...

    Tomcat7,Tomcat8,Tomcat8.5,Tomcat9打包下载

    - Apache Tomcat 8.5.31 for Windows x64: 这是Tomcat8.5系列的一个更新版本,同样为64位Windows系统设计。 - Apache Tomcat 8.0.52 for Windows x64: 这是Tomcat8的维护版本,对于仍需使用8.0版本的用户是一个可靠...

    apache-tomcat-8.5.23-windows-x64.zip 【Tomcat服务器,Tomcat8.5 windows 64位版】

    Tomcat8.5.23是该服务器的一个特定版本,专为Windows 64位操作系统设计,提供高效、稳定和安全的平台来部署Web服务。 在下载并解压缩"apache-tomcat-8.5.23-windows-x64.zip"后,你会得到一个名为"apache-tomcat-...

    tomcat-7.0.26.tomcat-juli-adapters.jar

    Juli是Tomcat内建的日志系统,它提供了一个灵活的日志框架,允许开发者自定义日志实现,以满足不同的日志需求。Juli的优势在于它能与Java标准的日志API(java.util.logging)无缝集成,同时也支持通过配置文件来控制...

    jsp在线考试系统毕业设计tomcat+Myeclipse

    【标题】:“jsp在线考试系统毕业设计tomcat+Myeclipse”是一个基于Java Web技术的项目,它利用了JSP(JavaServer Pages)作为前端展示技术,Tomcat作为应用服务器,以及MyEclipse作为开发环境来实现一套完整的在线...

    tomcat8 apache-tomcat-8.0.26.tar.gz

    Apache Tomcat 8.0.26 是一个广泛使用的开源软件,它是一个Java Servlet容器,专为部署Java Web应用程序而设计。Tomcat是Apache软件基金会的Jakarta项目的一部分,遵循Apache 2.0许可证,因此它是免费且开源的。这个...

    Tomcat7.x 64位系统

    【标题】:“Tomcat7.x 64位系统”指的是Apache Tomcat服务器的第七个主要版本,专为64位操作系统设计。Tomcat是开源软件,遵循Apache Software Foundation的许可,是Java Servlet、JavaServer Pages(JSP)和Java ...

    linux64_tomcat7

    另一个标签"linux64"强调了这是为64位Linux系统设计的,64位系统相比32位能处理更大的内存地址空间,更适合运行内存消耗大的应用,如大数据处理、数据库服务或高并发的Web应用。 压缩包子文件"apache-tomcat-7.0.39...

    tomcat8.5x64位绿色版

    【标题】"Tomcat 8.5 x64位绿色版"是指Apache Tomcat服务器的8.5版本,特别为64位操作系统设计的轻量级应用服务器。它主要用于部署和运行Java Servlets和JavaServer Pages(JSP)。Tomcat是开源软件,遵循Apache ...

Global site tag (gtag.js) - Google Analytics