Java日志系统研究
日志,源于log,有航海日志的意思。指记录海员记录每天的行程,生活及发生的事件。在软件开发领域,用来监控代码中变量变化,跟踪代码运行的轨迹,在开发环境中担当调试器作用,向控制台或文件输出信息。
几乎所有的软件开发语言(平台)都有自己的日志系统,java,.net,ruby,php等。在java领域,存在大量的日志组件,open-open收录了21个日志组件。
从功能上讲,这些可以分为三类,一是日志工具类,它实现了日志的记录,格式化和级别的划分,代表为logback,simplelog。二是日志系统,提供了完整的框架功能并实现了日志记录。代表为jul(jdk提供的日志框架),log4j(apache开源项目)。三是抽象整合类,它提供了一组接口,完成日志功能,通过包装其他日志工具或系统来工作jcl(apache开源组件),slf4j。
从历史上讲,log4j出现最早,Ceki Gülcü是其创造者。自java1.4开始,jdk提供了java.util.logging类库,提供了一个完整的日志框架,在设计上要比log4j要更清晰。这个时候,除此之外,还有一些其他日志组件,java领域从来不缺少轮子,总是有人在发明轮子,轮子多了,就会产生混乱,就会有人站出来,要一统江湖,于是,jcl,apache一个开源的日志组件诞生了,它提供了一组日志系统的接口,通过对log4j,jul和simplelog进行包装,提供日志功能。这样,开发的时候,只需要使用jcl,通过配置,灵活选择底层实现。这样,对于开发人员来说,开发更简单了些。看起来一切太平了,可Ceki Gülcü认为,应该有一个更好的日志框架。log4j经过这么久的发展,已经成为了一个巨人,亦伤痕累累,从外面看,经典,庄重,强壮,从内部看,却有着一根根的飞线(ThinkPad),充满了代码的坏味道。或许他没有勇气来改造这个巨人,离开也许是最好的选择,于是,出来,创建了slf4j,来取代jcl,创建了logback,来取代log4j。目前,log4j和jul应用最为广泛,slf4j作为新兴的抽象层,整合logback,以其简洁,快速,正被越来越多的顶级项目使用。
代表日志组件简要介绍。
Log4j,历史悠久,应用广泛,被移植到多种语言及平台,功能强大,在众多的日志框架中,仍占据着主导地位。
Jul,jdk提供的日志框架,设计精良,和jdk紧密结合,控制灵活,使用简单。
Jcl,提供了日志的抽象层,可以整合多种实现。但有classloader问题。
Slf4j,提供了jcl的超集,避免了classloader问题。
Logback,可靠,通用,快速,灵活的java日志工具(官方描述)。
项目选择思考。
如果是单一的项目,如桌面应用,采用jul,免配置,控制灵活。
如果是web开发,宜采用log4j,因为系统已经有了很多的配置文件,不在乎多一个,而且log4j可以脱离任何组件,不像jul,和jvm紧密结合在一起。
如果是多项目整合开发,宜采用slf4j,一是它可以整合其他遗留日志组件,二是其提供的抽象层,为将来的开发提供了灵活性。
参考资料:
1.IBM developerworks对log4j的介绍。 链接
2.Java开源日志组件列表。链接
3.Slf4j官方网站。链接
4.Logback官方网站。链接
5.Log4j官方网站。链接
6.Jcl官方网站。链接
7.Sun官方网站。链接
8.一个jcl的中文说明。链接
分享到:
相关推荐
比如,在某一项目开始时使用的是“log4j”框架,后面经过研究发现“sf4j”框架功能更强大,想切换到“sf4j”。常规的做法是,修改项目中每一处调用到“log4j”相关模块的代码。如果是项目比较大,所要花费的工作量...
基于Java的疫情防控管理系统:包括用户管理,角色管理,权限管理,日志管理,系统工具管理,人员管理,医护人员管理,患者管理,出院管理,中高风险地区管理,物资管理,还包括图表展示等,用户可以修改个人信息。...
DoppioVM 是一个可在浏览器上直接运行 Java 项目的系统,无需任何插件支持。目前它包含一个完整的虚拟机以及一个 javap 字节码反汇编器。 brap(Java远程调用框架 BRAP) 一个Java远程调用框架,它将原生Java对象序列...
本系统是采用JAVA作为前台开发工具,Access 作为后台数据库平台管理系统。旨在实现对现有的图书管理工作中遇到的各种情况和大量数据进行数据库存储调用的基础上,设计并完成对其各种图书的分类、查询和管理,在深入...
本项目是基于Java开发的疫情管理系统后端设计源码,主要使用Java进行开发。项目共包含130个文件,其中Java源代码文件74个,...项目结构清晰,代码注释详尽,适合用于学习和研究Java在疫情管理系统后端开发中的应用。
以分布式系统中Java后端开发技术的应用为主题,分析分布式系统开发的需求,探讨Java技术栈、分布式监控与日志管理、云服务模型在分布式系统Java后端开发中的应用路径,旨在为分布式系统的设计与实现提供全面的理论...
基于Spring的依赖注入和切面编程思想,研究了Java平台下的系统架构,针对不同应用系统的特点,提取出数据 访问、事务处理、日志跟踪、用户审计、系统监管和分布部署等通用需求,通过现有技术的合理继承,解决了传统...
本文讨论了如何利用java技术开发聊天室系统,基本满足了结构化、界面友好、速度快、安全性以及稳定性等特点。 系统着重研究并实现了网络应用的部分。根据实现的情况看,具有较友好的聊天界面生成效果,以及流畅的...
本文讲述了系统研究的背景、目的和意义。对系统所使用到的相关技术的原理进行了介绍;对系统进行了总体的需求分析并且按照系统实现的功能划分了相关模块;在进行了需求分析后,对系统进行了具体的硬件平台构建以及...
JSPSmart系统-权限管理与日志记录模块的设计与开发(源代码+论文).zip项目JAVA源码+资料打包下载JSPSmart系统-权限管理与日志记录模块的设计与开发(源代码+论文).zip项目JAVA源码+资料打包下载 1.适合学生做毕业设计...
1.研究情况:现今在我国随着教育IT公司学员数量的日益增加,企业管理学员的实训项目日志的难度与日俱增,企业管理平台的功能存在不足,开发和优化日志管理系统已成为公司管理的主流趋势。 2.目的意义:实训日志管理...
I 目 录 II 1 绪论 1 1.1 课题研究意义 1 1.2 所用开发工具及技术简介 1 1.2.1 MySQL数据库简介 1 1.2.2 Jfinal框架简介 2 2 需求分析与总体设计 2 2.1 系统可行性分析 2 2.2 系统需求分析 3 2.2.1 系统管理员需求...
为了帮助大家更好地完成毕业设计,我们特地整理了一系列Java毕业设计项目参考资源,包括源代码、MD文档、笔记等等,希望能对您的学习与研究提供有力支持。 项目源代码:涵盖了多个Java毕业设计项目的完整代码,包括...
本课题在充分研究了在SSM框架基础上,采用B/S模式,以Java为开发语言,MyEclipse为开发工具,MySQL为数据管理平台,实现的内容主要包括首页,个人中心,用户管理,电子资源管理,资源列表管理,资源日志管理,我的...
1有超过10年的Java开发经验.a精通JavacWeb开发的各种技术与框架,1对图形化开发、Eclipse插件开发等各种技术也有深入研究.a曾经开发过大型的分布式Web系统.a参与开发过中国移动、中国联通、中国电信的网关系统.a参与...
同时,系统还集成了安全认证、日志记录、异常处理等功能,确保了药店数据的安全与系统的稳定运行。 在功能方面,该系统涵盖了药品入库、出库、盘点管理,销售订单处理,客户信息维护,财务报表生成等多个模块,能够...
该框架具备一整套完整的权限管理系统,代码简洁,容易入门,适合开发者研究学习。 系统功能: 菜单管理 角色管理 系统功能 数据字典 机构信息 URL拦截 用户管理 日志管理 代码生成器 定时任务
除此之外,为了方便用户更好的操作和掌握服务器端,系统还设计四个管理服务器的模块,分别是在线用户管理模块,用户管理模块块,部门管理管理模块和日志管理模块。各个模块功能设计如下: 在线用户管理模块 该模块...
今天的进展:解决java的问题,在HackerRank上解决问题也研究并实现了AWS Versioning,Cross Region Replication。 第 4 天:2020 年 1 月 16 日 今天的进展:解决了 java 的问题,并在 HackerRank 上获得了我的...
旨在研究和实现一种基于JAVA的文件传输系统。该系统可让用户轻松地从一个设备向另一个设备传输文件,而无需使用第三方工具或云存储服务。 ## 设计目标 本系统的设计目标包括但不限于以下几点: - 实现高效可靠的...