关于jul桥接slf4j失败问题的探究
背景
slf4j提供桥接的能力,可以兼容项目中不同的日志实现,统一由slf4j门面调用同一日志实现
在测试jul桥接slf4j时,失败了
绑定的是log4j2
pom:
<dependencies><!-- slf4j核心包--><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>1.7.13</version></dependency><!--核心log4j2jar包--><dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-api</artifactId><version>2.4.1</version></dependency><dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-core</artifactId><version>2.4.1</version></dependency><!-- slf4j 绑定 log4j2实现The Apache Log4j SLF4J API binding to Log4j 2 Core--><dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-slf4j-impl</artifactId><version>2.4.1</version></dependency><!-- jul桥接slf4j https://mvnrepository.com/artifact/org.slf4j/jul-to-slf4j --><dependency><groupId>org.slf4j</groupId><artifactId>jul-to-slf4j</artifactId><version>1.7.13</version></dependency></dependencies>
测试代码:
输出
可以看到,jul并没有被桥接成功
思考
桥接器的原理是,不引用相关的实现类,而改成引用slf4j提供的桥接jar包,桥接的jar包中,有相同包路径的代码,这样可以避免已经写好的代码报错
但是这次case中,Logger还是引用的jdk的
这是不是和jvm的类加载,双亲委派原则有关系呢?众所周知 我们不能重写String类
看了一下官网的文档
http://www.slf4j.org/legacy.html
通过第二张图得知需要特殊处理一下,在程序启动时:
SLF4JBridgeHandler.removeHandlersForRootLogger();
SLF4JBridgeHandler.install();
或者,通过配置文件:
handlers = org.slf4j.bridge.SLF4JBridgeHandler
我们采取第一种方式:
结果:
成功了,非常的nice
关于jul桥接slf4j失败问题的探究相关推荐
- 关于keil和proteus联调失败的原因探究
1.没有在两个软件文件夹下放置.dll文件 没有在C51的INI文件中修改 2.没有安装某个. exe文件 3.在proteus中建好电路,把keil生成的hex文件导入芯片,debug,打开远程调试 ...
- java日志框架JUL、JCL、Slf4j、Log4j、Log4j2、Logback 一网打尽
为什么程序需要记录日志 我们不可能实时的24小时对系统进行人工监控,那么如果程序出现异常错误时要如何排查呢?并且系统在运行时做了哪些事情我们又从何得知呢?这个时候日志这个概念就出现了,日志的出现对系统 ...
- 001-log-log体系-log4j、jul、jcl、slf4j,日志乱象的归纳与统一
一.概述 log4j→jul→jcl→slf4j之后就开始百花齐放[slf4j适配兼容新老用户] 1.1.log4j阶段 在JDK出现后,到JDK1.4之前,常用的日志框架是apache的log4j. ...
- Java日志框架 -- SLF4J日志门面(入门案例、SLF4J优点、SLF4J日志绑定、SL4J桥接旧的日志框架)
1. SLF4J日志门面 JCL日志门面逐渐被淘汰了,因为他无法动态的扩展具体的日志实现框架. 简单日志门面(Simple Logging Facade For Java) SLF4J主要是为了给Ja ...
- 什么无线桥接一直正在链接服务器失败,tplink无线桥接失败怎么办?
不少用户向鸿哥反映,在设置tplink路由器无线桥接的时候,发现副路由器桥接主路由器信号失败,桥接不成功,连不上主路由器的信号. 所以,鸿哥特意整理了这篇文章,来详细介绍,tplink路由器无线桥接不 ...
- log4j+logback+slf4j+commons-logging的关系与调试
2019独角兽企业重金招聘Python工程师标准>>> 背景 由于现在开源框架日益丰富,好多开源框架使用的日志组件不尽相同.存在着在一个项目中,不同的版本,不同的框架共存. ...
- java日志框架之JCL和SLF4J
文章目录 1.JCL 1.1.JCL简介 1.2.入门使用 2.SLF4J 2.1.日志门面概述 2.2.SLF4J简介 2.3.入门使用 2.4.slf4j实现slf4j-simple和logbac ...
- 学习Java日志框架之——搞懂日志门面(JCL+SLF4J)
文章目录 系列文章目录 一.什么是日志门面 1.门面模式(外观模式) 2.日志门面 二.了解JCL 1.JCL组件结构 2.JCL案例 (1)JCL默认实现 (2)导入log4j测试原有程序 三.SL ...
- 日志门面框架Slf4j
SLF4J的使用 简单日志门面(Simple Logging Facade For Java) SLF4J主要是为了给Java日志访问提供一套标准.规范 的API框架,其主要意义在于提供接口,具体的实 ...
- SLF4J 日志门面
文章目录 01.简单介绍 02.日志级别 03.入门案例 03.动态打印 04.异常打印 05.日志集成 06.集成 logback 07.集成 slf4j-nop 08.集成 log4j 09.集成 ...
最新文章
- Eclipse中阿里JAVA代码规范插件(P3C)的安装及使用
- Digital System Design_VHDL设计
- 软考信息安全工程师备考笔记7:第七章信息系统安全工程备考要点
- 开源框架相关面试问题-retrofit网络框架面试问题讲解
- PHP设计模式——简单工厂
- 如何在 Keras 中开发具有注意力的编码器-解码器模型
- [bzoj3668][Noi2014]起床困难综合症/[洛谷3613]睡觉困难综合症
- IT项目管理之无休止会议
- MYSQL数据库管理与应用
- JAVA虚拟机环境如何在IMX6平台上搭建呢?
- 计算机漏洞安全相关的概念POC 、EXP 、VUL 、CVE 、0DAY
- 计算机物联网职业生涯规划书,物联网工程技术专业职业生涯规划书-.doc
- Windows设置默认打印机
- STM32工程文件的建立以及Keil软件的基本设置和修改
- 2022年执法资格通用法律知识考试判断题专项训练题及答案
- php怎么设置段落之间的距离,html中P标签段落与CSS段落间距距离调整
- navicat 解析sql_使用 Navicat 查询分析器优化查询性能(第 2 部分)
- 【循序渐进学Python】面向对象知多少——魔方方法
- uni-app启动时间太长
- 六级考研单词之路-八
热门文章
- jsp获取主机地址和主机名
- LabelImage 安装过程
- 基于okhttp3依赖和gson依赖的快递查询系统
- 老李分享:六度分隔理论 2
- 高胜美------《笑拥江山梦》
- linux下xz格式,【转载】Linux下tar.xz格式文件的解压方法
- 猜单词游戏。计算机随机产生一个单词,打乱字母顺序,供玩家去猜 a.准备一组单词,随机抽取一个b.将抽取的单词作为答案,打乱字母顺序,显示给玩家,供其猜测c.猜测错误继续猜测或以空字符串.
- 数据存储与容灾实验 用Winhex恢复磁盘
- 分光器光衰多少?分光器如何选购?分光器如何使用?
- 修改服务器网卡速率,linux查看网卡速率命令(linux如何改网卡速率命令)