一.关于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 Boot》源码学习笔记中,我们可以深入理解其内部工作机制,包括自动配置、起步依赖、命令行接口(CLI)以及如何集成各种组件如JSP等。JSP(JavaServer Pages)是一种用于动态创建网页的技术,Spring Boot ...
【标题】:“Web学习笔记——Tomcat” 在Web开发领域,Tomcat是一个广泛使用的Java Servlet容器,它实现了Java EE中的Web部分,特别是Servlet和JSP规范。Tomcat以其开源、轻量级和高效的特性,成为了许多小型项目和...
这个"spring学习笔记,包括源码学习"的资料很可能包含了一系列关于Spring框架的核心概念、配置、使用方法以及深入源码的解析。 首先,让我们来了解一下Spring框架的基础知识。Spring的核心特性是依赖注入,它允许...
### Linux学习笔记知识点详解 #### 一、用户与权限管理 **1. 切换当前用户** - **命令格式**: `su [要切换的用户名]` - **示例**: `su root` - **解释**: 使用`su`命令可以切换到另一个用户身份进行操作。如果...
这个"JavaWeb图书管理系统视频+资料+笔记"的压缩包可能包含了上述所有知识点的学习资源,包括视频教程、文档、源码示例,可以帮助你深入理解和实践这些技术,完成一个完整的JavaWeb项目。通过学习和实践,你可以掌握...
- **work**:存放Tomcat运行时JSP转换为Servlet的源码及Session钝化目录。 3. **部署Web工程**: - 方法一:直接将Web工程拷贝至`webapps`目录下。 - 方法二:在`conf\Catalina\localhost\`目录下创建XML配置...
**SpringBoot学习笔记** SpringBoot是由Pivotal团队开发的一款基于Java的轻量级框架,旨在简化Spring应用的初始搭建以及开发过程。它通过自动配置、起步依赖和运行时嵌入式服务器,使得开发者能够快速地创建独立的...
在Java Web开发中,基础知识和源码学习是提升技能的关键步骤。"java网站建设基础源码笔记类型.rar" 文件集合提供了一个深入理解Web应用程序构建过程的机会,尤其关注了Java、Servlet和Tomcat等核心技术。这份资源...
SpringBoot是Spring框架的一种简化和快速开发方式,它...在阅读提供的源码笔记时,应重点关注SpringBoot的启动流程、自动配置机制以及如何集成和配置各种服务。同时,理解并运用最佳实践,能够提升代码质量和应用性能。
【苍穹外卖】项目是一个基于JavaWeb技术的在线订餐系统,该项目的开发历经一个月的时间,作者分享了完整的源码和详细的笔记,旨在为学习者提供一个实践平台,加深对JavaWeb开发的理解。以下是该项目涉及的主要知识点...
- `logs`:记录Tomcat运行的日志信息。 - `webapps`:存放部署的Web应用。 #### 总结 本文通过对J2EE核心技术Servlet与JSP的详细介绍,不仅回顾了Java基础和Web开发技术的发展历程,而且还深入探讨了Servlet的...
Spring Boot 是一个基于 Spring 框架的快速开发...这个完整的 Spring Boot 学习笔记涵盖了从基础到进阶的各个方面,通过学习和实践,你可以掌握 Spring Boot 开发的核心技能,从而高效地构建高质量的 Java 后端应用。
它集成了许多默认配置,如数据源、Tomcat服务器和日志系统,大大提高了开发效率。 4. **MyBatis**:作为持久层框架,MyBatis使得数据库操作更为简单,通过XML或注解进行SQL映射,将SQL语句与Java代码分离,提供灵活...
在本篇Spring Boot笔记中,我们将探讨Spring Boot的核心特性、如何创建一个简单的Spring Boot应用以及POM.xml配置的解析。 1. **Spring Boot的核心特性** - **快速入门**:Spring Boot通过提供预配置的starter pom...
SpringBoot是Java开发中的一个热门框架,它简化了Spring...通过阅读这些源码和实战笔记,开发者不仅可以了解SpringBoot的工作原理,还能学习如何在实际项目中高效利用SpringBoot的各种特性,提升开发效率和应用质量。
本学习笔记主要聚焦于理解监听器的概念、作用以及如何在实际应用中使用它们。 一、监听器概述 监听器是实现了特定接口的Java类,这些接口定义了对特定事件的处理方法。例如,`HttpSessionListener`用于监听会话的...
Java Web学习笔记主要涵盖的是与开发Web应用程序相关的Java技术,包括Servlet、JSP、过滤器、监听器、MVC框架(如Spring MVC)、会话管理、请求和响应处理、数据库连接以及各种工具的使用等。这里我们将深入探讨这些...
通过【压缩包子文件的文件名称列表】"tomcat-learning-master",我们可以推测这是一个关于Tomcat学习的项目仓库,可能包含源代码示例、教程文档、实验指导或者个人学习笔记。通过这些资源,可以系统地学习和实践...