Log4j(四)——Log4j1与Log4j2的区别

前言

几乎每个大型应用程序都包含自己的日志或跟踪API。为了符合这一规则,欧盟SEMPRER项目决定编写自己的跟踪API。这是在1996年初。经过无数次的增强、几个版本和大量的工作之后,API演变成了log4j,这是一个流行的Java日志包。这个包是在Apache Software License下发布的,Apache Software License是由开源组织认证的完全成熟的开源许可证。

然而随着技术的发展,Log4j的结构、性能被很多新的日志框架所替代。它在设计结构上比不上slf4j,在性能上比不上logback。于是apache对垂垂老矣的Log4j进行一次重生,是重生,而不是优化。虽然都叫Log4j。但是,它们是两个完全不同的东西,为了方便区分他们,给了两个别名:Log4j1、Log4j2。

Log4j1与Log4j2的区别

设计理念的区别

slf4j的成功在于他的高屋建瓴,俯视一切。
slf4j是日志门面(像:java的接口,没有提供任何实现),通过提供各种桥接器,适配各种日志框架(Log4j1,logback等)。

Log4j1并没有这样的高度,于是Log4j2就借鉴了slf4j的设计。
Log4f2有两部分组成:log4j-api、log4j-core。
其中log4j-api和slf4j是相同的,都是日志门面,log4j-core则是对log4j-api的实现,和log4j1、logback是相同的, 并且通过桥接器log4j-api还可以适配其他的日志系统(logback等)。
就这样,Log4j2集成了slf4j与logback的优点,成为了Log4j的一次重生。

核心Jar包的区别

上面我们就说了,Log4j有两部分组成,分别是log4j-api、log4j-core

而在Log4j1中,Log4j的核心包只有log4j:log4j:[version]

而log4j2的核心包有2个:

org.apache.logging.log4j:log4j-core:[version]
org.apache.logging.log4j:log4j-api:[version]

引入Jar包的区别
//log4j1:
<dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>1.2.17</version>
</dependency>
 
//log4j2:
<dependency>
  <groupId>org.apache.logging.log4j</groupId>
  <artifactId>log4j-api</artifactId>
  <version>2.14.1</version>
<
  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值