开门见山吧,这次也拿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获取堆栈信息,我们在自己的项目中可以根据实际情况来进行某个位置的堆栈分析等工作,
,
分享到:
相关推荐
日志管理系统 功能:项目管理、日志管理、员工管理、角色管理、汇报管理 技术栈:jsp\B/s\spring\mysql\struts2\hibernate\tomcat
文章采用跨平台的Java EE技术和B/S架构,以开源的Tomcat作为Web容器,以SQL Server 2005为数据库设计与开发了一个员工日志管理系统,以方便企业管理者对每个员工的工作进展程度及对工作提出的建议及时掌握,从而有利于...
Logback是由log4j创始人设计的另一个开源日志组件,基于slf4j的日志规范实现的框架,性能比log4j要好。 Logback主要分为三个技术模块: logback-core:该模块为其他两个模块奠定了基础。 logback-classic:是log4j...
基于JAVA jsp+mysql的在线考试系统毕设。该系统旨在为学校提供一个高效...2. 稳定性好:系统采用分层架构设计,完善的异常处理机制和日志记录系统,保证系统的稳定性和可靠性。 3. 易于扩展:系统的模块化设计和开放式
【作品名称】:基于JavaWeb的实验室危化试剂管理系统设计与实现 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【项目介绍】: ...
19.幼儿园管理系统|基于springboot框架+ Mysql+Java+Tomcat设计与实现(可运行源码+数据库+设计文档+部署说明)系统管理也都将通过计算机进行整体智能化操作,对于幼儿园管理系统所牵扯的管理及数据保存都是非常多的,...
4 系统设计 11 4.1 系统概述 11 4.2 系统结构设计 12 4.3数据库设计 13 4.3.1 数据库设计原则 13 4.3.2 数据库实体 13 4.3.3 数据库表设计 14 5统详细设计 17 5.1前台首页功能模块 17 5.2管理员功能模块 18 5.3用户...
资源内容:项目全套源码+完整文档 源码说明: 全部项目源码都是经过测试校正后百分百成功运行。 SpringBoot 毕业设计,SpringBoot 课程设计,基于...部署环境:Tomcat(建议用 7.x 或者 8.x b版本),maven
基于SSM+JSP的美好生活日志网源码+数据库(毕业设计).zip 高分通过项目,已获导师指导。 本项目是一套基于SSM的美好生活日志网,主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的Java学习者。也可作为...
java毕业设计之幼儿园管理系统(项目源码+sql数据库+说明文档+论文+答辩ppt+演示视频) 本系统采用的数据库是Mysql,使用SpringBoot框架开发,运行环境使用Tomcat服务器,ECLIPSE 是本系统的开发平台。 使用幼儿园...
基于SpringBoot+Vue的响应式企业员工绩效考评系统设计与实现(源码+数据库+文档).zip 高分通过项目,已获导师指导。 本项目是一套基于Springboot的响应式企业员工绩效考评系统,主要针对计算机相关专业的正在做毕设的...
## 开发工具环境:(B/S架构MVC模型),jsp技术,myeclipse/Eclipse/Idea都可以,tomcat7.0以上服务器,mysql数据库 ### 教师: 1、增加、撤销助教 2、批准实验,批准使用材料与借用设备 3、发布实验、公告 4、学生...
里面包括源码和教程,下载下来按照教程部署即可,适合计算机专业的同学,可以用来做毕业设计和课程设计。 技术实现 后台框架:SpringBoot 数据库:MySQL 开发环境:JDK、IDEA、Tomcat 系统功能 该系统功能...
管理员角色包含以下功能:登录,用户增删改查,文章增删改查,链接增删改查,日志查看,查看近期数据,类别管理等功能。 游客角色包含以下功能:首页,查看文章,注册账号,登录,管理自己写的文章,管理自己的文章,评论文章...
这个系统是使用JSP、J2EE、Hibernate、Struct2、Spring、MySQL5.5、Tomcat7 等技术。这个系统可以基本的完成一个停车场的日常管理工作。其中的功能包括 了:管理员的登录功能,管理员增加和删除车位的功能,管理员对...
基于Struts+Spring+Hibernate+MySQL+Tomcat的中小企业办公自动化系统(源程序+开题报告+论文) 系统的主要功能概述如下: (1) 用户身份验证模块 本系统功能的开发与设计,是完全针对公司内部进行办公管理...
开发软件: Eclipse + JDK1.8 + Tomcat + Mysql 基于Springboot+shiro安全框架管理角色权限的班级同学录系统,主要有3个身份包括学生,老师和管理员。学生可以在前端注册账号登录,登录后可以查看到所有的班级信息...
在系统设计中主要研究了个性化页面的背景及Win2000server+tomcat+jsp系统的一般原理。阐述整个个性化页面生成系统的系统结构及工作原理,分析了系统实现中的特殊性、难点和重点。设计实现系统用户管理、用户信息管理...
个人中心、用户管理、日记信息管理、美食信息管理、景点信息管理、新闻推荐管理、日志展示管理、论坛管理、我的收藏管理、管理员管理、留言板管理、系统管理,前台首页;首页、日记信息、美食信息、景点信息、新闻...