`

Tomcat 7源码学习笔记 -11 日志输出

阅读更多

一.关于tomcat的日志设计,采用了工厂模式,主要的类有下面几个:

 

org.apache.juli.logging包:

 

1》Log接口

对外提供的接口,用户使用LogFactory.getLog方法获取的日志对象的抽象。

 

2》LogFactory类

通过静态的getLog方法,向用户提供获取日志对象的接口

 

public static Log getLog(Class<?> clazz)

public static Log getLog(String name)

 

getLog方法内部调用DirectJDKLog.getInstance(name),来获取DirectJDKLog对象

 

LogFactory本身是singleton的。

 

 

private static LogFactory singleton=new LogFactory();

public static LogFactory getFactory() throws LogConfigurationException {
        return singleton;
}

private LogFactory() {
        logConfig=new Properties();
}
  

3》DirectJDKLog类

实现了Log接口,并且内部封装了java的Logger对象

对于Log接口的实现,内部调用的都是java的Logger对象的方法,比如:

 

@Override
public final boolean isErrorEnabled() {
    return logger.isLoggable(Level.SEVERE);
}

 

二.日志配置文件

tomcat的日志配置文件是%CATALINA_BASE%\conf\logging.properties文件

在启动tomcat的时候,通过java的系统变量-Djava.util.logging.config.file="%CATALINA_BASE%\conf\logging.properties"来进行指定,如果不指定的话,会使用java的jre下的lib/logging.properties缺省配置文件。

 

其实tomcat并不直接使用这个配置文件,而是由java.util.logging.LogManager类来使用,tomcat的日志实现只是对java的日志实现进行了简单的封装,还有就是覆盖了java缺省的日志配置文件。

 

tomcat缺省情况下,只输出INFO级别以上的日志信息,如果想输出更详细的信息的话,需要手工修改conf\logging.properties文件,比如:

 

 

# 输出继承LifecycleBase类的每个子类的日志
org.apache.catalina.util.LifecycleBase.level = FINE

# 缺省的handler是控制台输出和catalina.yyyy-mm-dd.txt文件
.handlers = 1catalina.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler

# 缺省情况下,控制台输出格式采用简单格式,当然可以根据需要自己去修改

java.util.logging.ConsoleHandler.level = FINE
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
 
分享到:
评论

相关推荐

    Spring 学习笔记《Spring Boot》源码

    在《Spring Boot》源码学习笔记中,我们可以深入理解其内部工作机制,包括自动配置、起步依赖、命令行接口(CLI)以及如何集成各种组件如JSP等。JSP(JavaServer Pages)是一种用于动态创建网页的技术,Spring Boot ...

    web学习笔记 —— tomcat

    【标题】:“Web学习笔记——Tomcat” 在Web开发领域,Tomcat是一个广泛使用的Java Servlet容器,它实现了Java EE中的Web部分,特别是Servlet和JSP规范。Tomcat以其开源、轻量级和高效的特性,成为了许多小型项目和...

    spring学习笔记,包括源码学习

    这个"spring学习笔记,包括源码学习"的资料很可能包含了一系列关于Spring框架的核心概念、配置、使用方法以及深入源码的解析。 首先,让我们来了解一下Spring框架的基础知识。Spring的核心特性是依赖注入,它允许...

    Linux学习笔记

    ### Linux学习笔记知识点详解 #### 一、用户与权限管理 **1. 切换当前用户** - **命令格式**: `su [要切换的用户名]` - **示例**: `su root` - **解释**: 使用`su`命令可以切换到另一个用户身份进行操作。如果...

    JavaWeb图书管理系统视频+资料+笔记-JavaWeb-bookEstore.rar

    这个"JavaWeb图书管理系统视频+资料+笔记"的压缩包可能包含了上述所有知识点的学习资源,包括视频教程、文档、源码示例,可以帮助你深入理解和实践这些技术,完成一个完整的JavaWeb项目。通过学习和实践,你可以掌握...

    tomcat笔记1

    - **work**:存放Tomcat运行时JSP转换为Servlet的源码及Session钝化目录。 3. **部署Web工程**: - 方法一:直接将Web工程拷贝至`webapps`目录下。 - 方法二:在`conf\Catalina\localhost\`目录下创建XML配置...

    springboot学习笔记(史上最全)

    **SpringBoot学习笔记** SpringBoot是由Pivotal团队开发的一款基于Java的轻量级框架,旨在简化Spring应用的初始搭建以及开发过程。它通过自动配置、起步依赖和运行时嵌入式服务器,使得开发者能够快速地创建独立的...

    java网站建设基础源码笔记类型.rar

    在Java Web开发中,基础知识和源码学习是提升技能的关键步骤。"java网站建设基础源码笔记类型.rar" 文件集合提供了一个深入理解Web应用程序构建过程的机会,尤其关注了Java、Servlet和Tomcat等核心技术。这份资源...

    springboot各种使用与源码笔记

    SpringBoot是Spring框架的一种简化和快速开发方式,它...在阅读提供的源码笔记时,应重点关注SpringBoot的启动流程、自动配置机制以及如何集成和配置各种服务。同时,理解并运用最佳实践,能够提升代码质量和应用性能。

    苍穹外卖历时一个月终于写完啦!!!请白嫖我的笔记和完整代码吧!

    【苍穹外卖】项目是一个基于JavaWeb技术的在线订餐系统,该项目的开发历经一个月的时间,作者分享了完整的源码和详细的笔记,旨在为学习者提供一个实践平台,加深对JavaWeb开发的理解。以下是该项目涉及的主要知识点...

    最新韩顺平__jsp和selverlt原完整版课件_笔记

    - `logs`:记录Tomcat运行的日志信息。 - `webapps`:存放部署的Web应用。 #### 总结 本文通过对J2EE核心技术Servlet与JSP的详细介绍,不仅回顾了Java基础和Web开发技术的发展历程,而且还深入探讨了Servlet的...

    SpringBoot学习笔记完整教程

    Spring Boot 是一个基于 Spring 框架的快速开发...这个完整的 Spring Boot 学习笔记涵盖了从基础到进阶的各个方面,通过学习和实践,你可以掌握 Spring Boot 开发的核心技能,从而高效地构建高质量的 Java 后端应用。

    达内Java项目云笔记12天完整源码cloudnote_day12_all.zip

    它集成了许多默认配置,如数据源、Tomcat服务器和日志系统,大大提高了开发效率。 4. **MyBatis**:作为持久层框架,MyBatis使得数据库操作更为简单,通过XML或注解进行SQL映射,将SQL语句与Java代码分离,提供灵活...

    springBoot笔记一-来自于百度文库1

    在本篇Spring Boot笔记中,我们将探讨Spring Boot的核心特性、如何创建一个简单的Spring Boot应用以及POM.xml配置的解析。 1. **Spring Boot的核心特性** - **快速入门**:Spring Boot通过提供预配置的starter pom...

    springboot核心源码码解析笔记.rar_involvedwyg_springboot实战

    SpringBoot是Java开发中的一个热门框架,它简化了Spring...通过阅读这些源码和实战笔记,开发者不仅可以了解SpringBoot的工作原理,还能学习如何在实际项目中高效利用SpringBoot的各种特性,提升开发效率和应用质量。

    web学习笔记 —— 监听器

    本学习笔记主要聚焦于理解监听器的概念、作用以及如何在实际应用中使用它们。 一、监听器概述 监听器是实现了特定接口的Java类,这些接口定义了对特定事件的处理方法。例如,`HttpSessionListener`用于监听会话的...

    java web 学习笔记

    Java Web学习笔记主要涵盖的是与开发Web应用程序相关的Java技术,包括Servlet、JSP、过滤器、监听器、MVC框架(如Spring MVC)、会话管理、请求和响应处理、数据库连接以及各种工具的使用等。这里我们将深入探讨这些...

    tomcat-learning:本科期间学习Tomcat原始码所获

    通过【压缩包子文件的文件名称列表】"tomcat-learning-master",我们可以推测这是一个关于Tomcat学习的项目仓库,可能包含源代码示例、教程文档、实验指导或者个人学习笔记。通过这些资源,可以系统地学习和实践...

Global site tag (gtag.js) - Google Analytics