Java日志组件间关系详解

 更新时间:2019年02月22日 08:29:36   投稿:laozhang  
在本文里我们给大家整理了关于Java日志组件间关系相关基础知识,需要的朋友们跟着学习下。

一、 总览

本文章不对日志组件进行优劣评价,只是对关系进行对比。在日志中组件中存在这样的几种关系, 这几种关系理解清楚, 有助于我们对日志的引入和使用。

二、 日志门面

日志门面就是指直接引入我们程序中进行记录日志的日志组件,作为日志门面的这些组件会在程序中直接依赖, 上图中就列举的几种常见的日志门面的组件。像一些软件直接回默认使用一些组件, 比如Spring使用的就是commons-logging, activiti使用的日志门面就是slf4j, 其他的软件也都会选用自己认为好用的日志门面。

三、 日志实现

除了log4j既是门面又是实现之外, commons-logging和slf4j 都是能直接打印日志的, 都需要依赖一个日志实现来打印日志,上图中也举了几个日志实现。

四、桥接方式

slf4j默认和logback做了一些桥接的处理,那么桥接的作用是什么呢, 假如我想使用slf4j做为实现的门面,然而同时我想使用log4j作为真正的日志实现,这个时候就需要slf4j-logrj12 jar包, 现在应该可以理解桥接方式了。

五、 改变依赖

这里的作用是为了避免一些冲突, 例如在这样的场景下,我们使用spring做为开发,而我们开发的软件要使用的是slf4j作为日志门面,这个时候因为Spirng默认使用的是commons-logging作为日志门面,这个时候就会发生一些冲突, 所以我们可以引入jcl-over-slf4j, 通过这个组件把commons-logging覆盖掉, 为了把历史软件内部的依赖覆盖掉, 就可通过这个方式改变依赖。

相关文章

  • java中@Configuration使用场景

    java中@Configuration使用场景

    本文主要介绍了java中@Configuration使用场景,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-03
  • httpclient的disableConnectionState方法工作流程

    httpclient的disableConnectionState方法工作流程

    这篇文章主要为大家介绍了httpclient的disableConnectionState方法工作流程源码解读,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-11-11
  • Java Char的简单工具类CharUtil分享

    Java Char的简单工具类CharUtil分享

    下面小编就为大家分享一篇Java Char的简单工具类CharUtil,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2017-12-12
  • Java 数据结构与算法系列精讲之二叉堆

    Java 数据结构与算法系列精讲之二叉堆

    二叉堆是一种特殊的堆,其实质是完全二叉树。二叉堆有两种:最大堆和最小堆。最大堆是指父节点键值总是大于或等于任何一个子节点的键值。而最小堆恰恰相反,指的是父节点键值总是小于任何一个子节点的键值
    2022-02-02
  • 解决eclipse启动tomcat时不能加载web项目的问题

    解决eclipse启动tomcat时不能加载web项目的问题

    这篇文章主要介绍了解决eclipse启动tomcat时不能加载web项目的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-06-06
  • java调用python脚本引入第三方库失败的实现

    java调用python脚本引入第三方库失败的实现

    本文主要介绍了java调用python脚本引入第三方库失败的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-07-07
  • java设计模式之抽像工厂详解

    java设计模式之抽像工厂详解

    这篇文章主要为大家详细介绍了java设计模式之抽像工厂的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-09-09
  • IO流概述分类字节流写数据三种方式及问题分析

    IO流概述分类字节流写数据三种方式及问题分析

    这篇文章主要为大家介绍了IO流概述分类字节流写数据三种方式及写数据问题分析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-12-12
  • Java基础知识精通块作用域与条件及switch语句

    Java基础知识精通块作用域与条件及switch语句

    块(block,即复合语句)是指由若干条 Java 语句组成的语句,并由一对大括号括起来。块确定了变量的作用域。一个块可以嵌套在另一个块中;条件语句、switch语句是我们常见会用到的结构,感兴趣的朋友来看看吧
    2022-04-04
  • Java基础篇之分布式版本控制工具Git

    Java基础篇之分布式版本控制工具Git

    Git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。 也是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件
    2021-10-10

最新评论