最近在应用中第一次接触到JUL(java.util.logging),顺便对自己使用过的日志框架做个简单的总结
Java里的日志框架很多,
open-open上面就记载了一大堆,比较常用的有Log4j, Jakarta Commons Logging (JCL), JUL, SLF4J, Logback等,主要可以分为两大类
一、完整的日志实现,比如Log4j, JUL, Logback
Log4j: JAVA里面出现最早,1999年由Ceki Glc创建。Log4j凭借强大的功能,简单的配置,丰富齐全的appender,灵活的自定义layout,成为使用最为广泛的日志框架。虽然面临Logback这样新兴框架的竞争,但在将来很长一段时间内,Log4j始终会是JAVA日志框架的主流
JUL: JDK1.4引进的日志系统。使用下来感觉是在Log4j基础上再造的轮子,对Log4j使用的名词概念做了一些重命名,但在功能与易用性上都比不上Log4j。对于简单的日志纪录还可以用用,至少不用导入第三方JAR包
Logback: JAVA日志框架的后起之秀,同样出自Log4j作者Ceki Glc之手,解决了很多Log4j遗留的问题,比起Log4j有更好的性能,支持自动重新装载配置文件等优点。很多开源项目有转向Logback的趋势,像Tapestry, Hibernate, Spring都已经采用logback,但想达到完全取代Log4j的目标,还需要很长一段时间
二、日志接口,比如JCL, SLF4J。只提供一个简单的日志操作接口,允许开发人员通过配置文件,使用不同的日志实现框架
JCL: Apache出品的日志接口,用于屏蔽Log4j与JUL的实现差异,JCL+Log4j是目前最主流的搭配
SLF4J: 同样是Log4j的作者Ceki Glc创建,用来取代JCL。Simple Logging Facade for Java,从它的名字就可以看出它只承担Facade的角色,允许开发以使用统一的日志接口,整合不同的日志实现。做为一个新兴的框架,它几乎对Log4j, JUL, Logback所有的实现框架都提供了支持。SLF4J支持参数化的log,比如在JCL里面,出于性能考虑,日志代码常常是这样的
logger.isDebugEnabled(){
logger.debug("user id : " + userId);
}
在SLF4J里面可以直接写
logger.debug("user id : {}", userId);
这么多框架该如何选择?
我觉得对于新的项目,完全可以考虑采用SLF4J+Logback, 它们跟Log4j都是由同一作者创建,概念上很相似,转移成本很小。SLF4J提供的参数化日志接口代码量更小,更清晰
对于老项目,如果不需要整合不同的日志实现,保留原来的框架就好,没必要为了日志功能而大作修改
分享到:
相关推荐
JAVA日志框架适配-冲突解决方案 本文将对JAVA日志框架适配中可能出现的冲突进行分析和解决,涵盖日志框架的基本概念、常见的冲突原因和解决方案。 日志框架的基本概念: 在JAVA中,日志框架可以分为两种:日志...
Java日志框架是Java开发中不可或缺的一部分,它用于记录应用程序运行过程中的各种信息,帮助开发者在出现问题时进行调试和分析。日志框架的选择和整合对于一个项目来说至关重要,因为它不仅影响到开发效率,还直接...
Java日志框架SL4J(Simple Logging Facade for Java)是一个接口层,它为各种Java日志库提供了一个统一的API。这个框架允许开发者在不修改代码的情况下切换不同的日志实现,如Log4j、Logback或Java内置的日志系统。...
该项目为Java日志框架学习而设计,包含43个文件,涵盖24个Java源文件、13个XML配置文件、4个属性文件、2个YAML配置文件,旨在通过实践加深对Java日志系统的理解。
Java日志框架详解.ppt
SLF4J(Simple Logging Facade for Java)是Java日志框架的一个抽象层,它的主要目的是为各种日志实现提供一个统一的接口。这使得开发者能够在不修改代码的情况下,自由地选择日志实现,如Log4J、Logback或Java内置...
常用日志框架章节二:JUL1. 快速入门2. 日志级别3. Logger直接父子关系4. 配置文件5. 原理解析章节三:Log4j1. 快速入门2. Log4j组件解析3. Layout格式4. Appender输出5. 自定义Logger章节四:JCL1. 快速入门2. ...
总之,"采用JDK实现的日志框架"是一个基于标准Java日志API构建的系统,它可以满足基本的日志需求。然而,为了实现更复杂的功能和优化性能,开发者可能需要探索和扩展这个框架,或者转向其他更强大的第三方日志解决...
1. **Log4J**:灵活性强,但配置复杂,是早期Java日志框架的代表。 2. **JDK1.4 Logging Framework**:吸收了Log4J的理念,成为JDK的一部分,提供了简单的实现。 3. **Commons Logging Framework**:提供统一接口,...
一个简单的日志框架,很早写的,五一闲了两天,修一修注释一下拿出来共享。。。。。。 注意: 该日志框架五脏不全。。。。。 改进意见: 1.可以在配置文件中添加日志输出格式,然后在代码中读取该格式用以控制输出...
<groupId>com.esotericsoftware</groupId> <artifactId>minlog <version>1.3.0 <packaging>bundle</packaging>
logback (Java 日志框架)简介Logback是由log4j创始人设计的又一个开源日志组件。logback当前分成三个模块:logback-core,logback- classic和logback-access。logback-core是其它两个模块的基础模块。logback-...
3. **Java日志框架** - Log4j:经典日志框架,提供了灵活的日志配置和多种Appender(如文件、数据库等)。 - Logback:由Log4j作者设计的新一代日志框架,性能优于Log4j。 - SLF4J(Simple Logging Facade for ...
本篇主要介绍一些基础的日志概念、常用的Java日志框架以及如何有效地解决Java日志问题。 1. 日志的重要性 日志在软件开发中起到关键作用,它可以记录程序的执行流程,便于排查问题,特别是在分布式系统中,日志...
Java日志框架的发展历程中,涌现出了许多知名的组件,例如log4j、logback、log4j2以及Java内置的日志API(java.util.logging,简称JUL)。这些框架各有特点,选择哪一种通常取决于项目需求和性能考虑。 - **log4j**...
二、常见Java日志框架 1. Log4j:Apache的Log4j是Java中最广泛使用的日志框架,提供了丰富的API和灵活的配置,支持多种输出方式,并且性能优秀。 2. Logback:由Log4j的创始人创建,作为其后继者,Logback在性能上...
1. **log4j**:早期的Java日志框架,因其简单易用和功能强大,成为许多项目的首选。log4j提供了丰富的日志级别和定制化配置。 2. **JUL (java.util.logging)**:随着Java平台的发展,Oracle在JDK 1.4中引入了JUL,...