背景

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失败问题的探究相关推荐

  1. 关于keil和proteus联调失败的原因探究

    1.没有在两个软件文件夹下放置.dll文件 没有在C51的INI文件中修改 2.没有安装某个. exe文件 3.在proteus中建好电路,把keil生成的hex文件导入芯片,debug,打开远程调试 ...

  2. java日志框架JUL、JCL、Slf4j、Log4j、Log4j2、Logback 一网打尽

    为什么程序需要记录日志 我们不可能实时的24小时对系统进行人工监控,那么如果程序出现异常错误时要如何排查呢?并且系统在运行时做了哪些事情我们又从何得知呢?这个时候日志这个概念就出现了,日志的出现对系统 ...

  3. 001-log-log体系-log4j、jul、jcl、slf4j,日志乱象的归纳与统一

    一.概述 log4j→jul→jcl→slf4j之后就开始百花齐放[slf4j适配兼容新老用户] 1.1.log4j阶段 在JDK出现后,到JDK1.4之前,常用的日志框架是apache的log4j. ...

  4. Java日志框架 -- SLF4J日志门面(入门案例、SLF4J优点、SLF4J日志绑定、SL4J桥接旧的日志框架)

    1. SLF4J日志门面 JCL日志门面逐渐被淘汰了,因为他无法动态的扩展具体的日志实现框架. 简单日志门面(Simple Logging Facade For Java) SLF4J主要是为了给Ja ...

  5. 什么无线桥接一直正在链接服务器失败,tplink无线桥接失败怎么办?

    不少用户向鸿哥反映,在设置tplink路由器无线桥接的时候,发现副路由器桥接主路由器信号失败,桥接不成功,连不上主路由器的信号. 所以,鸿哥特意整理了这篇文章,来详细介绍,tplink路由器无线桥接不 ...

  6. log4j+logback+slf4j+commons-logging的关系与调试

    2019独角兽企业重金招聘Python工程师标准>>> 背景      由于现在开源框架日益丰富,好多开源框架使用的日志组件不尽相同.存在着在一个项目中,不同的版本,不同的框架共存. ...

  7. 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 ...

  8. 学习Java日志框架之——搞懂日志门面(JCL+SLF4J)

    文章目录 系列文章目录 一.什么是日志门面 1.门面模式(外观模式) 2.日志门面 二.了解JCL 1.JCL组件结构 2.JCL案例 (1)JCL默认实现 (2)导入log4j测试原有程序 三.SL ...

  9. 日志门面框架Slf4j

    SLF4J的使用 简单日志门面(Simple Logging Facade For Java) SLF4J主要是为了给Java日志访问提供一套标准.规范 的API框架,其主要意义在于提供接口,具体的实 ...

  10. SLF4J 日志门面

    文章目录 01.简单介绍 02.日志级别 03.入门案例 03.动态打印 04.异常打印 05.日志集成 06.集成 logback 07.集成 slf4j-nop 08.集成 log4j 09.集成 ...

最新文章

  1. Eclipse中阿里JAVA代码规范插件(P3C)的安装及使用
  2. Digital System Design_VHDL设计
  3. 软考信息安全工程师备考笔记7:第七章信息系统安全工程备考要点
  4. 开源框架相关面试问题-retrofit网络框架面试问题讲解
  5. PHP设计模式——简单工厂
  6. 如何在 Keras 中开发具有注意力的编码器-解码器模型
  7. [bzoj3668][Noi2014]起床困难综合症/[洛谷3613]睡觉困难综合症
  8. IT项目管理之无休止会议
  9. MYSQL数据库管理与应用
  10. JAVA虚拟机环境如何在IMX6平台上搭建呢?
  11. 计算机漏洞安全相关的概念POC 、EXP 、VUL 、CVE 、0DAY
  12. 计算机物联网职业生涯规划书,物联网工程技术专业职业生涯规划书-.doc
  13. Windows设置默认打印机
  14. STM32工程文件的建立以及Keil软件的基本设置和修改
  15. 2022年执法资格通用法律知识考试判断题专项训练题及答案
  16. php怎么设置段落之间的距离,html中P标签段落与CSS段落间距距离调整
  17. navicat 解析sql_使用 Navicat 查询分析器优化查询性能(第 2 部分)
  18. 【循序渐进学Python】面向对象知多少——魔方方法
  19. uni-app启动时间太长
  20. 六级考研单词之路-八

热门文章

  1. jsp获取主机地址和主机名
  2. LabelImage 安装过程
  3. 基于okhttp3依赖和gson依赖的快递查询系统
  4. 老李分享:六度分隔理论 2
  5. 高胜美------《笑拥江山梦》
  6. linux下xz格式,【转载】Linux下tar.xz格式文件的解压方法
  7. 猜单词游戏。计算机随机产生一个单词,打乱字母顺序,供玩家去猜 a.准备一组单词,随机抽取一个b.将抽取的单词作为答案,打乱字母顺序,显示给玩家,供其猜测c.猜测错误继续猜测或以空字符串.
  8. 数据存储与容灾实验 用Winhex恢复磁盘
  9. 分光器光衰多少?分光器如何选购?分光器如何使用?
  10. 修改服务器网卡速率,linux查看网卡速率命令(linux如何改网卡速率命令)