springboot2.x整合logback日志系统

一. 整合背景

请移步log4j架构的介绍文章: 《一个著名的日志系统是怎么设计出来的?》

每个日志框架系统都有期优劣之处, logback作为log4j 原作者的升级版本, 存在诸多优势:

  • Logback同样是由Log4j的作者设计完成的,拥有更好的特性,用来取代Log4j的一个日志框架,是Slf4j的原生实现(Native implementations)
  • 使用日志框架的最佳实践是选择一款日志门面+一款日志实现,这里选择Slf4j+Logback, Slf4j作者也是Logback的作者
  • SpringBoot从1.4版本开始,内置的日志框架就是Logback
  • 方便的配置日志输出至console, 并同时在磁盘上以文件形式留存,还可以按日志Level 来分别生产日志文件夹, 如: info/debug/error/warn,日志可以按照配置规则, 方面的进行按天/时/分钟不同粒度的归档操作.

logback在springboot maven继承树中的位置:

①. pom.xml 中parent

<parent>标签作用:
.
现在有这样一个场景,有两个web项目A、B,一个java项目C,它们都需要用到同一个jar包:common.jar。如果分别在三个项目的pom文件中定义各自对common.jar的依赖,那么当common.jar的版本发生变化时,三个项目的pom文件都要改,项目越多要改的地方就越多,很麻烦。
这时候就需要用到parent标签, 我们创建一个parent项目,打包类型为pom,parent项目中不存放任何代码,只是管理多个项目之间公共的依赖。在parent项目的pom文件中定义对common.jar的依赖,ABC三个子项目中只需要定义,parent标签中写上parent项目的pom坐标就可以引用到common.jar了。
`
同理, springboot项目构建时, 也用到了这一特性, 会从parent继承过来通用的配置.

<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.1.6.RELEASE</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>
	<groupId>com.example</groupId>
	<artifactId>test-project</artifactId>
	<version>1.0.0-SNAPSHOT</version>
	<name>test-project</name>
	<description>Demo project for Spring Boot</description>

②. 查看其上一层的依赖(按住ctrl + 鼠标点击artifactId), 如下:
由下面的artifactId中的名字(spring-boot-dependencies)可以看出, 这里包含的都是spring-boot项目所需的公共依赖, 不存放任何代码.

依赖文件名: spring-boot-dependencies-2.1.6.RELEASE.pom

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-dependencies</artifactId>
    <version>2.1.6.RELEASE</version>
    <relativePath>../../spring-boot-dependencies</relativePath>
  </parent>
  <artifactId>spring-boot-starter-parent</artifactId>
  <packaging>pom</packaging>
  <name>Spring Boot Starter Parent</name>
  <description>Parent pom providing dependency and plugin management for applications
		built with Maven</description>
  <url>https://projects.spring.io/spring-boot/#/spring-boot-starter-parent</url>



# 向下翻, 可以看到 spring-boot-starter-logging 这个依赖包

<dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-logging</artifactId>
        <version>2.1.6.RELEASE</version>
      </dependency>

③. 继续查看(spring-boot-starter-logging) 其上一层的依赖(按住ctrl + 鼠标点击artifactId), 如下:

依赖文件名: spring-boot-starter-logging-2.1.6.RELEASE.pom

<dependencies>
    <dependency>
      <groupId>ch.qos.logback</groupId>
      <artifactId>logback-classic</artifactId>
      <version>1.2.3</version>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-to-slf4j</artifactId>
      <version>2.11.2</version>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>jul-to-slf4j</artifactId>
      <version>1.7.26</version>
      <scope>compile</scope>
    </dependency>
  </dependencies>

可以清楚的看到, logback/ log4j-to-slf4j 门面转换器 / jul-to-slf4j 门面转换器, 都已包含在spring-boot的公共依赖中.

④. pom.xml 依赖调用链示意图如下:
在这里插入图片描述

二. 实现目标

SpringBoot项目在启动时, 如果未加额外的日志配置, 则默认日志会输出到控制台(Console)中.

以下实验希望实现如下目标:<

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值