更换Spring底层日志框架
更换Spring底层日志框架
spring-jcl
在spring中有一个模块叫做spring-jcl,是Spring的日志框架,底层是会对日志框架进行判断的,是根据日志框架做优先级选取的。
spring-jcl底层日志框架加载优先级
有一个优先级:LOG4J2 级是最高的,其次是SLF4J (>=1.3)、SLF4J(<1.3)、JUL 。
这个加载优先级可以在一个叫LogAdapter
的类中看到,所以说要更换的实现,只需导入相应的jar包即可,spring-jcl在底层会做优先级判断以确定底层日志框架的选择。
看下面源吗就知道,LogAdapter会根据项目拥有的日志框架,以更改其底层日志框架。
如果需要更换spring底层默认使用的日志框架,只需要导入相应的日志框架即可,spring-jcl将会根据优先级使用不同的日志框架。
Java常用的日志框架介绍:https://blog.csdn.net/qq_43203949/article/details/119902321
private static final String LOG4J_SPI = "org.apache.logging.log4j.spi.ExtendedLogger";private static final String LOG4J_SLF4J_PROVIDER = "org.apache.logging.slf4j.SLF4JProvider";private static final String SLF4J_SPI = "org.slf4j.spi.LocationAwareLogger";private static final String SLF4J_API = "org.slf4j.Logger";private static final LogApi logApi;static {if (isPresent(LOG4J_SPI)) {if (isPresent(LOG4J_SLF4J_PROVIDER) && isPresent(SLF4J_SPI)) {// log4j-to-slf4j bridge -> we'll rather go with the SLF4J SPI;// however, we still prefer Log4j over the plain SLF4J API since// the latter does not have location awareness support.logApi = LogApi.SLF4J_LAL;}else {// Use Log4j 2.x directly, including location awareness supportlogApi = LogApi.LOG4J;}}else if (isPresent(SLF4J_SPI)) {// Full SLF4J SPI including location awareness supportlogApi = LogApi.SLF4J_LAL;}else if (isPresent(SLF4J_API)) {// Minimal SLF4J API without location awareness supportlogApi = LogApi.SLF4J;}else {// java.util.logging as defaultlogApi = LogApi.JUL;}
}
关于spring boot的选择
spring boot默认使用logback日志框架(logback是面向slf4j接口编程的)
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-logging -->
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-logging</artifactId><version>2.3.11.RELEASE</version>
</dependency>
如果想使用log4j2去代替logback的话,就导入下面这个jar包
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-log4j2 -->
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-log4j2</artifactId><version>2.5.4</version>
</dependency>
更换Spring底层日志框架相关推荐
- Spring boot日志框架
日志框架 日志的抽象层 日志的实现层 Spring boot底层,是Spring框架 Spring框架,默认使用JCL Spring boot 使用的SLF4J和Logback 日志门面,SLF4J ...
- Spring boot 日志框架
SpringBoot能自动适配所有的日志,而且底层使用slf4j+logback的方式记录日志,引入其他框架的时候,只需要 把这个框架依赖的日志框架排除掉即可: <dependency> ...
- Spring整合日志框架Log4j2
对于一款软件而言,日志记录都是十分重要的.它不仅能够监控程序的运行情况,周期性的记录到文件中,还能够跟踪程序中代码的运行轨迹,向文件或控制台打印代码的调试信息.当程序出现错误时,日志记录可以帮助开发人 ...
- 3.1.spring boot 日志框架SLF4j使用示例
目前比较常用的有以下几种日志框架 JUL.JCL.Jboss-logging.logback.log4j.log4j2.slf4j.... 其中SpringBoot主要是使用 SLF4j和logbac ...
- spring boot日志框架体系剖析(默认采用logback作为日志框架)
一定要排除依赖,才能使用中间转换包,要不然就会出现依赖冲突: spring boot对日志输出级别等作出了默认配置: 替换springboot默认的配置: 切换到log4j: pom依赖排除: l ...
- Spring全家桶中的日志框架
Spring全家桶中的日志框架 spring-jcl spring-jcl是spring的日志框架,spring-jcl底层使用的日志框架是有优先级的优先级为:LOG4J2 级是最高的,其次是SLF4 ...
- spring boot—集成log4j2日志框架
文章目录 市场上的日志框架 spring boot日志框架关系 移除默认日志框架 切换为log4j2日志框架 市场上的日志框架 1)日志门面最常用的是slf4j 2)日志实现最常用的是logb ...
- 【Spring 工厂】工厂设计模式、第一个Spring程序细节分析、整合日志框架
Spring 引言 什么是 Spring? 工厂设计模式 简单工厂的设计 通用工厂的设计 通用工厂的使用方式 第一个 Spring 程序 环境搭建 Spring 的核心API 程序开发 细节分析 Sp ...
- 第三章--Spring5.X与日志框架的整合以及Spring注入(injection)
Spring与日志框架进行整合,日志框架就可以在控制台中,输出Spring框架运行过程中的一些重要的信息. 好处:便于了解Spring框架的运行过程,利于程序的调试. Spring如何整合日志框架 默 ...
最新文章
- 浅显易懂 Makefile 入门 (09)— include 文件包含、MAKECMDGOALS
- 我在谷歌实习时发现了一个模型 bug,于是有了这篇 ACL
- Python 动态变量名定义与调用
- shmmax单位_linux 内存管理——内核的shmall 和shmmax 参数
- CCNP自学之路——eigrp--1
- 剑指offer:调整数组顺序使奇数位于偶数前面
- QT入门注意事项(1)
- 产品优化成果过关?监控数据说了算
- 另一种ABAP解析XML file的方式
- python基本输入输出系统_Python的输入输出
- compress()方法
- js计算排名_今天,我们讲一下,快速排名与黑帽SEO
- 津津的储蓄计划(洛谷-P1089)
- 58 - II. 左旋转字符串
- mybatis mysql uuid_spring boot整合mybatis利用Mysql实现主键UUID的方法
- 代码重构!你敢吗?| 技术头条
- 泰康应用盒子Android,泰康医疗app下载-泰康医疗 安卓版v1.8.8-PC6安卓网
- 20190902每日一句
- 计算机课怎么管纪律,浅谈如何巧妙设置学生机轻松管理机房课堂纪律
- 几行代码实现鼠标自动点击电脑屏幕指定位置,防止电脑或远程桌面休眠
热门文章
- javascript核心
- d3.js学习笔记--Mike Bostock: Thinking with Joins
- 如何优雅的使用RabbitMQ
- .NET定时任务执行管理器开源组件–FluentScheduler
- Android开发之旅:应用程序基础及组件
- MongoDB 一个基于分布式文件存储的数据库
- Nginx+Lua(OpenResty) HelloWorld
- 台式计算机键盘配置及价格,最新台式电脑组装配置单及价格【图文】
- 只用html5与CSS做一个简单的页面,HTML+CSS基础训练之做一个简单页面的布局
- 谷歌新语言重写android,谷歌将推新设计语言 安卓APP用户界面将换新颜