01.日志框架介绍

本文介绍了日志框架的分类,包括日志门面和日志实现,并详细阐述了Spring 4.x和5.x,以及Spring Boot 1.x和2.x在日志框架选择上的变化。在Spring框架中,从4.x到5.x,日志门面从jcl过渡到slf4j,使用spring-jcl进行兼容。Spring Boot则在1.x和2.x版本中,通过spring-boot-starter-logging组件进行日志处理,并在2.x版本中不再使用jcl-over-slf4j,转而使用spring-jcl适配。文章还探讨了jcl的兼容适配,包括jcl-over-slf4j和spring-jcl的工作原理,以及如何最终找到slf4j的LoggerFactory。
摘要由CSDN通过智能技术生成

日志框架介绍

日志框架有很多种,根据功能类型可以划分为两类,日志门面和日志实现。

  • 日志门面:日志抽象层,只提供日志调用的标准,不提供日志的具体实现,使用者面向日志抽象层编码,实现层切换无感知。

    日志门面 描述
    jcl(commons-logging) Apache提供的commons-logging包,两个基本的抽象类:Log(基本记录器)和LogFactory(负责创建Log实例),2014停止更新,已很少使用
    jboss-logging 使用场景少,特定框架使用,如:hibernate
    slf4j Simple Logging Facade for Java,简单的日志门面,与log4j、loback同一作者
  • 日志实现:日志实现层,实现日志门面提供的标准,具体执行日志操作

    日志实现 描述
    log4j Apache提供的开源日志框架,后因性能问题已基本不用
    logback 因log4j性能差而创作,与log4j、slf4j同一作者
    log4j2 Apache重做的日志框架,与log4j无关,许多框架还未适配,没有广泛使用
    jul(java.util.logging) jdk自带的日志工具,基本不用

日志框架选择

spring

版本 日志框架
4.X jcl+log4j
5.X slf4j+log4j2,为了兼容jcl,提供了spring-jcl适配

4.X

  • spring-core
    <dependency>
      <groupId>commons-logging</groupId>
      <artifactId>commons-logging</artifactId>
      <version>1.2</version>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>log4j</groupId>
      <artifactId>log4j</artifactId>
      <version>1.2.17</version>
      <scope>compile</scope>
      <optional>true</optional>
    </dependency>

5.X

  • spring-core
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-jcl</artifactId>
      <version>5.0.10.RELEASE</version>
      <scope>compile</scope>
    </dependency>
  • spring-jcl
    <dependency>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-api</artifactId>
      <version>2.11.1</version>
      <scope>compile</scope>
      <optional>true</optional>
    </dependency>
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-api</artifactId>
      <version>1.7.25</version>
      <scope>compile</scope>
      <optional>true</optional>
    </dependency>

在这里插入图片描述

springboot

springboot版本 spring版本 日志框架
1.X 4.X slf4j+logback,排除spring的jcl,通过jcl-over-slf4j兼容适配jcl
2.X 5.X slf4j+logback,通过spring-jcl兼容适配jcl

1.X

  • spring-boot-starter
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-logging</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-core</artifactId>
			<exclusions>
				<exclusion>
					<groupId>commons-logging</groupId>
					<artifactId>commons-logging</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
  • spring-boot-starter-logging
		<dependency>
			<groupId>ch.qos.logback</groupId>
			<artifactId>logback-classic</artifactId>
		</dependency>
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>jcl-over-slf4j</artifactId>
		
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值